1 package OpenILS::Application::Storage::Publisher::metabib;
2 use base qw/OpenILS::Application::Storage/;
4 use OpenSRF::EX qw/:try/;
5 use OpenILS::Application::Storage::CDBI::metabib;
6 use OpenILS::Utils::Fieldmapper;
16 my $rec = metabib::full_rec->create($metadata);
17 $client->respond( $rec->id );
19 $client->respond( 0 );
24 __PACKAGE__->register_method(
25 method => 'create_full_rec',
26 api_name => 'open-ils.storage.metabib.full_rec.create',
30 Method to create a "full_rec" (Koha) nodeset in the DB.
31 0|new->id = open-ils.storage.metabib.full_rec.create ( Fieldmapper::metabib::full_rec );
42 metabib::full_rec->update($entry);
48 __PACKAGE__->register_method(
49 method => 'update_full_rec',
50 api_name => 'open-ils.storage.metabib.full_rec.update',
61 metabib::full_rec->delete($entry);
67 __PACKAGE__->register_method(
68 method => 'delete_full_rec',
69 api_name => 'open-ils.storage.metabib.full_rec.delete',
82 my ($rec) = metabib::full_rec->fast_fieldmapper($id);
83 $client->respond( $rec ) if ($rec);
85 last if ($self->api_name !~ /list/o);
89 __PACKAGE__->register_method(
90 method => 'get_full_rec',
91 api_name => 'open-ils.storage.metabib.full_rec.retrieve',
95 __PACKAGE__->register_method(
96 method => 'get_full_rec',
97 api_name => 'open-ils.storage.metabib.full_rec.retrieve.list',
104 sub create_record_nodeset {
109 my $method = $self->method_lookup('open-ils.storage.metabib.record_node.create');
112 while ( my $node = shift(@nodes) ) {
113 my ($res) = $method->run( $node );
114 push @success, $res if ($res);
117 my $insert_total = 0;
118 $insert_total += $_ for (@success);
120 return $insert_total;
122 __PACKAGE__->register_method(
123 method => 'create_record_nodeset',
124 api_name => 'open-ils.storage.metabib.record_node.batch.create',
129 sub update_record_nodeset {
133 my $method = $self->method_lookup('open-ils.storage.metabib.record_node.update');
136 while ( my $node = shift(@_) ) {
137 my ($res) = $method->run( $node );
138 push @success, $res if ($res);
141 my $update_total = 0;
142 $update_total += $_ for (@success);
144 return $update_total;
146 __PACKAGE__->register_method(
147 method => 'create_record_nodeset',
148 api_name => 'open-ils.storage.metabib.record_node.batch.update',
153 sub delete_record_nodeset {
157 my $method = $self->method_lookup('open-ils.storage.metabib.record_node.delete');
160 while ( my $node = shift(@_) ) {
161 my ($res) = $method->run( $node );
162 push @success, $res if ($res);
165 my $delete_total = 0;
166 $delete_total += $_ for (@success);
168 return $delete_total;
170 __PACKAGE__->register_method(
171 method => 'create_record_nodeset',
172 api_name => 'open-ils.storage.metabib.record_node.batch.delete',
177 sub get_record_nodeset {
182 for my $id ( @ids ) {
185 $client->respond( [metabib::record_node->fast_fieldmapper( owner_doc => "$id", {order_by => 'intra_doc_id'} )] );
187 last if ($self->api_name !~ /list/o);
191 __PACKAGE__->register_method(
192 method => 'get_record_nodeset',
193 api_name => 'open-ils.storage.metabib.full_rec.nodeset.retrieve',
197 __PACKAGE__->register_method(
198 method => 'get_record_nodeset',
199 api_name => 'open-ils.storage.metabib.full_rec.nodeset.retrieve.list',