1 package OpenILS::Application::Vandelay;
2 use OpenILS::Application;
3 use base qw/OpenILS::Application/;
5 use Unicode::Normalize;
6 use OpenSRF::EX qw/:try/;
8 use OpenSRF::AppSession;
9 use OpenSRF::Utils::SettingsClient;
11 use OpenILS::Utils::Fieldmapper;
12 use OpenILS::Utils::CStoreEditor qw/:funcs/;
17 use OpenILS::Utils::Fieldmapper;
19 use Time::HiRes qw(time);
21 use OpenSRF::Utils::Logger qw/:level/;
22 my $log = 'OpenSRF::Utils::Logger';
38 $stuff =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe;
42 # --------------------------------------------------------------------------------
45 sub create_bib_queue {
54 my $e = new_editor(authtoken => $auth, xact => 1);
56 return $e->die_event unless $e->checkauth;
57 return $e->die_event unless $e->allowed('CREATE_BIB_IMPORT_QUEUE', $owner);
59 my $queue = new Fieldmapper::vandelay::bib_queue();
60 $queue->name( $name );
61 $queue->owner( $owner );
62 $queue->queue_type( $type ) if ($type);
63 $queue->queue_purpose( $purpose ) if ($purpose);
65 my $new_id = $e->create_vandelay_bib_queue( $queue );
66 $e->die_event unless ($new_id);
71 __PACKAGE__->register_method(
72 api_name => "open-ils.vandelay.bib_queue.create",
73 method => "create_bib_queue",
79 sub create_auth_queue {
88 my $e = new_editor(authtoken => $auth, xact => 1);
90 return $e->die_event unless $e->checkauth;
91 return $e->die_event unless $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $owner);
93 my $queue = new Fieldmapper::vandelay::authority_queue();
94 $queue->name( $name );
95 $queue->owner( $owner );
96 $queue->queue_type( $type ) if ($type);
97 $queue->queue_purpose( $purpose ) if ($purpose);
99 my $new_id = $e->create_vandelay_authority_queue( $queue );
100 $e->die_event unless ($new_id);
105 __PACKAGE__->register_method(
106 api_name => "open-ils.vandelay.authority_queue.create",
107 method => "create_auth_queue",
112 sub add_record_to_bib_queue {
119 my $e = new_editor(authtoken => $auth, xact => 1);
121 $queue = $e->retrieve_vandelay_bib_queue($queue)
123 return $e->die_event unless $e->checkauth;
124 return $e->die_event unless
125 ($e->allowed('CREATE_BIB_IMPORT_QUEUE', undef, $queue) ||
126 $e->allowed('CREATE_BIB_IMPORT_QUEUE', $queue->owner));
128 my $rec = new Fieldmapper::vandelay::queued_bib_record();
130 $rec->queue( $queue->id );
132 my $new_id = $e->create_vandelay_queued_bib_record( $rec );
133 $e->die_event unless ($new_id);
138 __PACKAGE__->register_method(
139 api_name => "open-ils.vandelay.queued_bib_record.create",
140 method => "add_record_to_bib_queue",
145 sub add_record_to_authority_queue {
152 my $e = new_editor(authtoken => $auth, xact => 1);
154 $queue = $e->retrieve_vandelay_authority_queue($queue)
156 return $e->die_event unless $e->checkauth;
157 return $e->die_event unless
158 ($e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', undef, $queue) ||
159 $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $queue->owner));
161 my $rec = new Fieldmapper::vandelay::queued_authority_record();
163 $rec->queue( $queue->id );
165 my $new_id = $e->create_vandelay_queued_authority_record( $rec );
166 $e->die_event unless ($new_id);
171 __PACKAGE__->register_method(
172 api_name => "open-ils.vandelay.queued_authority_record.create",
173 method => "add_record_to_authority_queue",
182 my $auth = $cgi->param('ses') || $cgi->cookie('ses');
184 return Apache2::Const::FORBIDDEN unless verify_login($auth);
186 my $fingerprint = $cgi->param('fingerprint')
187 my $type = $cgi->param('type')
188 my $queue = $cgi->param('queue')
190 my $cache = new OpenSRF::Utils::Cache();
192 my $data = $cache->get_cache('vandelay_import_spool_' . $fingerprint);
193 $data = decode_base64($data);
195 print "Content-type: text/plain; charset=utf-8\n\n$data_fingerprint";
197 return Apache2::Const::OK;