]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm
cddf96a4c9ca717c4c00da713ee30e8551332b2b
[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         my $search_field = 'id';
15         $search_field = 'usrname' if ($self->api_name =~/userid/o);
16         $search_field = 'usrname' if ($self->api_name =~/username/o);
17
18         for my $id ( @ids ) {
19                 next unless ($id);
20                 
21                 $log->debug("Searching for $id using ".$self->api_name, DEBUG);
22
23                 my ($rec) = actor::user->fast_fieldmapper($search_field => "$id");
24                 $client->respond( $rec ) if ($rec);
25
26                 last if ($self->api_name !~ /list$/o);
27         }
28         return undef;
29 }
30 __PACKAGE__->register_method(
31         method          => 'get_user_record',
32         api_name        => 'open-ils.storage.actor.user.retrieve',
33         api_level       => 1,
34         argc            => 1,
35 );
36 __PACKAGE__->register_method(
37         method          => 'get_user_record',
38         api_name        => 'open-ils.storage.actor.user.search.username',
39         api_level       => 1,
40         argc            => 1,
41 );
42 __PACKAGE__->register_method(
43         method          => 'get_user_record',
44         api_name        => 'open-ils.storage.actor.user.search.userid',
45         api_level       => 1,
46         argc            => 1,
47 );
48 __PACKAGE__->register_method(
49         method          => 'get_user_record',
50         api_name        => 'open-ils.storage.actor.user.retrieve.list',
51         api_level       => 1,
52         argc            => 1,
53 );
54 __PACKAGE__->register_method(
55         method          => 'get_user_record',
56         api_name        => 'open-ils.storage.actor.user.search.username.list',
57         api_level       => 1,
58         stream          => 1,
59         argc            => 1,
60 );
61 __PACKAGE__->register_method(
62         method          => 'get_user_record',
63         api_name        => 'open-ils.storage.actor.user.search.userid.list',
64         api_level       => 1,
65         stream          => 1,
66         argc            => 1,
67 );
68
69 sub update_user_record {
70         my $self = shift;
71         my $client = shift;
72         my $user = shift;
73
74         my $rec = actor::user->update($user);
75         return 0 unless ($rec);
76         return 1;
77 }
78 __PACKAGE__->register_method(
79         method          => 'update_user_record',
80         api_name        => 'open-ils.storage.actor.user.update',
81         api_level       => 1,
82         argc            => 1,
83 );
84
85 sub delete_record_entry {
86         my $self = shift;
87         my $client = shift;
88         my $user = shift;
89
90         my $rec = actor::user->delete($user);
91         return 0 unless ($rec);
92         return 1;
93 }
94 __PACKAGE__->register_method(
95         method          => 'delete_user_record',
96         api_name        => 'open-ils.storage.actor.user.delete',
97         api_level       => 1,
98         argc            => 1,
99 );
100
101 1;