]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm
adding actor interface for getting a "actor.usr" record
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / Application / Storage / Publisher / actor.pm
1 package OpenILS::Application::Storage::Publisher::actor;
2 use base qw/OpenILS::Application::Storage/;
3 use OpenILS::Application::Storage::CDBI::actor;
4 use OpenSRF::Utils::Logger qw/:level/;
5
6 my $log = 'OpenSRF::Utils::Logger';
7
8 sub get_user_record {
9         my $self = shift;
10         my $client = shift;
11         my @ids = @_;
12
13         for my $id ( @ids ) {
14                 next unless ($id);
15                 
16                 $log->debug("Searching for $id using ".$self->api_name, DEBUG);
17
18                 my $rec;
19
20                 ($rec) = actor::user->search( usrname => $id) if ($self->api_name =~/username/o);
21                 ($rec) = actor::user->search( usrid => $id) if ($self->api_name =~/userid/o);
22
23                 $client->respond( $self->_cdbi2Hash( $rec ) ) if ($rec);
24
25                 last if ($self->api_name !~ /list$/o);
26         }
27         return undef;
28 }
29 __PACKAGE__->register_method(
30         method          => 'get_user_record',
31         api_name        => 'open-ils.storage.actor.user.retrieve.username',
32         api_level       => 1,
33         argc            => 1,
34 );
35 __PACKAGE__->register_method(
36         method          => 'get_user_record',
37         api_name        => 'open-ils.storage.actor.user.retrieve.userid',
38         api_level       => 1,
39         argc            => 1,
40 );
41 __PACKAGE__->register_method(
42         method          => 'get_user_record',
43         api_name        => 'open-ils.storage.actor.user.retrieve.username.list',
44         api_level       => 1,
45         stream          => 1,
46         argc            => 1,
47 );
48 __PACKAGE__->register_method(
49         method          => 'get_user_record',
50         api_name        => 'open-ils.storage.actor.user.retrieve.userid.list',
51         api_level       => 1,
52         stream          => 1,
53         argc            => 1,
54 );
55
56 1;