]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Search/Authority.pm
94a6899c8c348bee41db64b0c15d688159a01f90
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / Application / Search / Authority.pm
1 package OpenILS::Application::Search::Authority;
2 use base qw/OpenSRF::Application/;
3 use strict; use warnings;
4
5 use OpenILS::EX;
6
7 use OpenILS::Utils::Fieldmapper;
8 use OpenILS::Application::AppUtils;
9
10 use JSON;
11
12 use Time::HiRes qw(time);
13 use OpenSRF::EX qw(:try);
14 use Digest::MD5 qw(md5_hex);
15
16 sub crossref_subject {
17         my $self = shift;
18         my $client = shift;
19         my $subject = shift;
20
21         my $session = OpenSRF::AppSession->create("open-ils.storage");
22         $session->connect;
23
24         my $freq = $session->request('open-ils.storage.authority.subject.see_from.controlled.atomic',$subject);
25         my $areq = $session->request('open-ils.storage.authority.subject.see_also_from.controlled.atomic',$subject);
26
27         my $from = $freq->gather(1);
28         my $also = $areq->gather(1);
29
30         $session->disconnect;
31
32         return { from => $from, also => $also };
33 }
34 __PACKAGE__->register_method(
35         method          => "crossref_subject",
36         api_name        => "open-ils.search.authority.subject.crossref",
37         argc            => 1, 
38         note            => "Searches authority data for existing subject controlled terms and crossrefs",
39 );              
40
41
42 1;