1 use strict; use warnings;
2 package OpenILS::Application::Cat;
3 use OpenSRF::Application;
4 use OpenILS::Application::Cat::Utils;
5 use base qw/OpenSRF::Application/;
6 use Time::HiRes qw(time);
8 use OpenILS::Utils::Fieldmapper;
10 my $utils = "OpenILS::Application::Cat::Utils";
13 OpenSRF::Application->method_lookup( "blah" );
17 __PACKAGE__->register_method(
18 method => "biblio_record_tree_retrieve",
19 api_name => "open-ils.cat.biblio.record.tree.retrieve",
21 note => "Returns the tree associated with the nodeset of the given doc id"
24 sub biblio_record_tree_retrieve {
25 my( $self, $client, $recordid ) = @_;
27 my $name = "open-ils.storage.biblio.record_entry.nodeset.retrieve";
28 my $method = $self->method_lookup($name);
31 throw OpenSRF::EX::PANIC ("Could not lookup method $name");
34 my ($nodes) = $method->run($recordid);
36 if(UNIVERSAL::isa($nodes,"OpenSRF::EX")) {
40 return undef unless $nodes;
41 my $tree = $utils->nodeset2tree( $nodes );
46 __PACKAGE__->register_method(
47 method => "biblio_record_tree_commit",
48 api_name => "open-ils.cat.biblio.record.tree.commit",
50 note => "Walks the tree and commits any changed nodes " .
51 "adds any new nodes, and deletes any deleted nodes",
54 sub biblio_record_tree_commit {
55 my( $self, $client, $tree ) = @_;
56 my $nodeset = $utils->tree2nodeset($tree);
57 return $utils->commit_nodeset( $nodeset );