From: erickson Date: Wed, 14 May 2008 21:40:03 +0000 (+0000) Subject: added lineitem_provider_attr_def retrieve and create calls, more to come X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a224ff44ecc61ea4f4bafe3b95a1019ed9f2315d;p=Evergreen.git added lineitem_provider_attr_def retrieve and create calls, more to come git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9607 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/extras/ils_events.xml b/Open-ILS/src/extras/ils_events.xml index 68845df213..43bb8f7207 100644 --- a/Open-ILS/src/extras/ils_events.xml +++ b/Open-ILS/src/extras/ils_events.xml @@ -610,7 +610,9 @@ The requested permission.usr_object_perm_map was not found - + + The requested acq.lineitem_provider_attr_definition was not found + diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Provider.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Provider.pm index 0fca4c741d..8749323f01 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Provider.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Provider.pm @@ -98,5 +98,58 @@ sub retrieve_org_providers { return undef; } +__PACKAGE__->register_method( + method => 'retrieve_provider_attr_def', + api_name => 'open-ils.acq.lineitem_provider_attr_definition.provider.retrieve', + stream => 1, + signature => { + desc => 'Retrieves all of the lineitem_provider_attr_definition for a given provider', + params => [ + {desc => 'Authentication token', type => 'string'}, + {desc => 'Provider ID', type => 'number'} + ], + return => {desc => 'Streams a of lineitem_provider_attr_definition objects'} + } +); + +sub retrieve_provider_attr_def { + my($self, $conn, $auth, $prov_id) = @_; + my $e = new_editor(authtoken=>$auth); + return $e->event unless $e->checkauth; + my $provider = $e->retrieve_acq_provider($prov_id) + or return $e->event; + return $e->event unless $e->allowed('ADMIN_PROVIDER', $provider->owner); + for my $id (@{$e->search_acq_lineitem_provider_attr_definition({provider=>$prov_id},{idlist=>1})}) { + $conn->respond($e->retrieve_acq_lineitem_provider_attr_definition($id)); + } + + return undef; +} + +__PACKAGE__->register_method( + method => 'create_provider_attr_def', + api_name => 'open-ils.acq.lineitem_provider_attr_definition.create', + signature => { + desc => 'Retrieves all of the lineitem_provider_attr_definition for a given provider', + params => [ + {desc => 'Authentication token', type => 'string'}, + {desc => 'Provider ID', type => 'number'} + ], + return => {desc => 'Streams a of lineitem_provider_attr_definition objects'} + } +); + +sub create_provider_attr_def { + my($self, $conn, $auth, $attr_def) = @_; + my $e = new_editor(authtoken=>$auth, xact=>1); + return $e->die_event unless $e->checkauth; + my $provider = $e->retrieve_acq_provider($attr_def->provider) + or return $e->die_event; + return $e->event unless $e->allowed('ADMIN_PROVIDER', $provider->owner); + $e->create_acq_lineitem_provider_attr_definition($attr_def) + or return $e->die_event; + $e->commit; + return $attr_def->id; +} 1;