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');
49 local biblio::record_node->db_Main->{AutoCommit} = 0;
52 while ( my $node = shift(@_) ) {
53 $client->respond( $method->run( $node ) );
57 __PACKAGE__->register_method(
58 method => 'create_record_nodeset',
59 api_name => 'open-ils.storage.biblio.record_node.batch.create',
64 sub create_record_entry {
69 my $rec = biblio::record_entry->create($metadata);
72 __PACKAGE__->register_method(
73 method => 'create_record_entry',
74 api_name => 'open-ils.storage.biblio.record_entry.create',
79 Params should be passed as a hash ref!
85 Please at least try to fill in:
97 sub update_record_entry {
102 my $rec = biblio::record_entry->retrieve($$entry{id});
103 return undef unless ($rec);
105 for my $field ( keys %$node ) {
106 $rec->$field( $$node{$field} );
112 __PACKAGE__->register_method(
113 method => 'update_record_node',
114 api_name => 'open-ils.storage.biblio.record_node.update',
121 sub get_record_entry {
126 for my $id ( @ids ) {
129 my $rec = biblio::record_entry->retrieve($id);
130 $client->respond( $self->_cdbi2Hash( $rec ) ) if ($rec);
132 last if ($self->api_name !~ /list/o);
136 __PACKAGE__->register_method(
137 method => 'get_record_entry',
138 api_name => 'open-ils.storage.biblio.record_entry.retrieve',
142 __PACKAGE__->register_method(
143 method => 'get_record_entry',
144 api_name => 'open-ils.storage.biblio.record_entry.retrieve.list',
150 sub get_record_node {
155 for my $id ( @ids ) {
158 my $rec = biblio::record_node->retrieve($id);
159 $client->respond( $self->_cdbi2Hash( $rec ) ) if ($rec);
161 last if ($self->api_name !~ /list/o);
165 __PACKAGE__->register_method(
166 method => 'get_record_node',
167 api_name => 'open-ils.storage.biblio.record_node.retrieve',
171 __PACKAGE__->register_method(
172 method => 'get_record_node',
173 api_name => 'open-ils.storage.biblio.record_node.retrieve.list',
179 sub get_record_nodeset {
184 for my $id ( @ids ) {
187 my $rec = biblio::record_entry->retrieve($id);
188 $client->respond( $self->_cdbi_list2AoH( $rec->nodes ) ) if ($rec);
192 __PACKAGE__->register_method(
193 method => 'get_record_nodeset',
194 api_name => 'open-ils.storage.biblio.record_entry.nodeset.retrieve',