]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm
using Fieldmapper.pm
[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 use OpenILS::Utils::Fieldmapper;
6
7 my $log = 'OpenSRF::Utils::Logger';
8
9 sub get_user_record {
10         my $self = shift;
11         my $client = shift;
12         my @ids = @_;
13
14         for my $id ( @ids ) {
15                 next unless ($id);
16                 
17                 $log->debug("Searching for $id using ".$self->api_name, DEBUG);
18
19                 my $rec;
20
21                 ($rec) = actor::user->search( usrname => $id) if ($self->api_name =~/username/o);
22                 ($rec) = actor::user->search( usrid => $id) if ($self->api_name =~/userid/o);
23
24                 if ($rec) {
25
26                         my $user = Fieldmapper::actor::user->new;
27
28                         for my $field (Fieldmapper::actor::user->real_fields) {
29                                 $user->$field($rec->$field);
30                         }
31
32                         $client->respond( $user );
33
34                 }
35
36                 last if ($self->api_name !~ /list$/o);
37         }
38         return undef;
39 }
40 __PACKAGE__->register_method(
41         method          => 'get_user_record',
42         api_name        => 'open-ils.storage.actor.user.retrieve.username',
43         api_level       => 1,
44         argc            => 1,
45 );
46 __PACKAGE__->register_method(
47         method          => 'get_user_record',
48         api_name        => 'open-ils.storage.actor.user.retrieve.userid',
49         api_level       => 1,
50         argc            => 1,
51 );
52 __PACKAGE__->register_method(
53         method          => 'get_user_record',
54         api_name        => 'open-ils.storage.actor.user.retrieve.username.list',
55         api_level       => 1,
56         stream          => 1,
57         argc            => 1,
58 );
59 __PACKAGE__->register_method(
60         method          => 'get_user_record',
61         api_name        => 'open-ils.storage.actor.user.retrieve.userid.list',
62         api_level       => 1,
63         stream          => 1,
64         argc            => 1,
65 );
66
67 1;