1 package OpenILS::Application::Storage::Publisher::biblio;
2 use base qw/OpenILS::Application::Storage/;
3 use OpenILS::Application::Storage::CDBI::biblio;
5 sub create_record_node {
10 my $n = biblio::record_node->create($node);
13 __PACKAGE__->register_method(
14 method => 'create_record_node',
15 api_name => 'open-ils.storage.biblio.record_node.create',
20 sub update_record_node {
25 my $n = biblio::record_node->retrieve($$node{id});
26 return undef unless ($n);
28 for my $field ( keys %$node ) {
29 $n->$field( $$node{$field} );
35 __PACKAGE__->register_method(
36 method => 'update_record_node',
37 api_name => 'open-ils.storage.biblio.record_node.update',
43 sub create_record_nodeset {
47 my $method = $self->method_lookup('open-ils.storage.biblio.record_node.create');
50 while ( my $node = shift(@_) ) {
51 $client->respond( $method->run( $node ) );
55 __PACKAGE__->register_method(
56 method => 'create_record_nodeset',
57 api_name => 'open-ils.storage.biblio.record_node.batch.create',
62 sub create_record_entry {
67 my $rec = biblio::record_entry->create($metadata);
70 __PACKAGE__->register_method(
71 method => 'create_record_entry',
72 api_name => 'open-ils.storage.biblio.record_entry.create',
77 Params should be passed as a hash ref!
83 Please at least try to fill in:
95 sub update_record_entry {
100 my $rec = biblio::record_entry->retrieve($$entry{id});
101 return undef unless ($rec);
103 for my $field ( keys %$node ) {
104 $rec->$field( $$node{$field} );
110 __PACKAGE__->register_method(
111 method => 'update_record_node',
112 api_name => 'open-ils.storage.biblio.record_node.update',
119 sub get_record_entry {
124 for my $id ( @ids ) {
127 my $rec = biblio::record_entry->retrieve($id);
128 $client->respond( $self->_cdbi2Hash( $rec ) ) if ($rec);
130 last if ($self->api_name !~ /list/o);
134 __PACKAGE__->register_method(
135 method => 'get_record_entry',
136 api_name => 'open-ils.storage.biblio.record_entry.retrieve',
140 __PACKAGE__->register_method(
141 method => 'get_record_entry',
142 api_name => 'open-ils.storage.biblio.record_entry.retrieve.list',
148 sub get_record_node {
153 for my $id ( @ids ) {
156 my $rec = biblio::record_node->retrieve($id);
157 $client->respond( $self->_cdbi2Hash( $rec ) ) if ($rec);
159 last if ($self->api_name !~ /list/o);
163 __PACKAGE__->register_method(
164 method => 'get_record_node',
165 api_name => 'open-ils.storage.biblio.record_node.retrieve',
169 __PACKAGE__->register_method(
170 method => 'get_record_node',
171 api_name => 'open-ils.storage.biblio.record_node.retrieve.list',
177 sub get_record_nodeset {
182 for my $id ( @ids ) {
186 $self->_cdbi_list2AoH(
187 biblio::record_node->search(
188 owner_doc => $id, { order_by => 'intra_doc_id' }
193 last if ($self->api_name !~ /list/o);
197 __PACKAGE__->register_method(
198 method => 'get_record_nodeset',
199 api_name => 'open-ils.storage.biblio.record_entry.nodeset.retrieve',
203 __PACKAGE__->register_method(
204 method => 'get_record_nodeset',
205 api_name => 'open-ils.storage.biblio.record_entry.nodeset.retrieve.list',