X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=Koha%2FREST%2FV1%2FItems.pm;h=3213fad35c784fe062303169fafcda75a2618cc5;hb=7d8b96803f664d86762a6afb966051f7d565c40e;hp=f69944c5b9dd4c9b66124488b2bab6819cb37fc9;hpb=58da3de84ada910098024e535a7d2bbaf6caf84b;p=srvgit diff --git a/Koha/REST/V1/Items.pm b/Koha/REST/V1/Items.pm index f69944c5b9..3213fad35c 100644 --- a/Koha/REST/V1/Items.pm +++ b/Koha/REST/V1/Items.pm @@ -2,18 +2,18 @@ package Koha::REST::V1::Items; # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 3 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use Modern::Perl; @@ -44,7 +44,7 @@ sub list { return try { my $items_set = Koha::Items->new; - my $items = $c->objects->search( $items_set, \&_to_model, \&_to_api ); + my $items = $c->objects->search( $items_set ); return $c->render( status => 200, openapi => $items @@ -98,168 +98,4 @@ sub get { }; } -=head2 Internal methods - -=head3 _to_api - -Helper function that maps unblessed Koha::Hold objects into REST api -attribute names. - -=cut - -sub _to_api { - my $item = shift; - - # Rename attributes - foreach my $column ( keys %{ $Koha::REST::V1::Items::to_api_mapping } ) { - my $mapped_column = $Koha::REST::V1::Items::to_api_mapping->{$column}; - if ( exists $item->{ $column } - && defined $mapped_column ) - { - # key != undef - $item->{ $mapped_column } = delete $item->{ $column }; - } - elsif ( exists $item->{ $column } - && !defined $mapped_column ) - { - # key == undef - delete $item->{ $column }; - } - } - - return $item; -} - -=head3 _to_model - -Helper function that maps REST api objects into Koha::Hold -attribute names. - -=cut - -sub _to_model { - my $item = shift; - - foreach my $attribute ( keys %{ $Koha::REST::V1::Items::to_model_mapping } ) { - my $mapped_attribute = $Koha::REST::V1::Items::to_model_mapping->{$attribute}; - if ( exists $item->{ $attribute } - && defined $mapped_attribute ) - { - # key => !undef - $item->{ $mapped_attribute } = delete $item->{ $attribute }; - } - elsif ( exists $item->{ $attribute } - && !defined $mapped_attribute ) - { - # key => undef / to be deleted - delete $item->{ $attribute }; - } - } - - return $item; -} - -=head2 Global variables - -=head3 $to_api_mapping - -=cut - -our $to_api_mapping = { - itemnumber => 'item_id', - biblionumber => 'biblio_id', - biblioitemnumber => undef, - barcode => 'external_id', - dateaccessioned => 'acquisition_date', - booksellerid => 'acquisition_source', - homebranch => 'home_library_id', - price => 'purchase_price', - replacementprice => 'replacement_price', - replacementpricedate => 'replacement_price_date', - datelastborrowed => 'last_checkout_date', - datelastseen => 'last_seen_date', - stack => undef, - notforloan => 'not_for_loan_status', - damaged => 'damaged_status', - damaged_on => 'damaged_date', - itemlost => 'lost_status', - itemlost_on => 'lost_date', - withdrawn => 'withdrawn', - withdrawn_on => 'withdrawn_date', - itemcallnumber => 'callnumber', - coded_location_qualifier => 'coded_location_qualifier', - issues => 'checkouts_count', - renewals => 'renewals_count', - reserves => 'holds_count', - restricted => 'restricted_status', - itemnotes => 'public_notes', - itemnotes_nonpublic => 'internal_notes', - holdingbranch => 'holding_library_id', - paidfor => undef, - timestamp => 'timestamp', - location => 'location', - permanent_location => 'permanent_location', - onloan => 'checked_out_date', - cn_source => 'call_number_source', - cn_sort => 'call_number_sort', - ccode => 'collection_code', - materials => 'materials_notes', - uri => 'uri', - itype => 'item_type', - more_subfields_xml => 'extended_subfields', - enumchron => 'serial_issue_number', - copynumber => 'copy_number', - stocknumber => 'inventory_number', - new_status => 'new_status' -}; - -=head3 $to_model_mapping - -=cut - -our $to_model_mapping = { - item_id => 'itemnumber', - biblio_id => 'biblionumber', - external_id => 'barcode', - acquisition_date => 'dateaccessioned', - acquisition_source => 'booksellerid', - home_library_id => 'homebranch', - purchase_price => 'price', - replacement_price => 'replacementprice', - replacement_price_date => 'replacementpricedate', - last_checkout_date => 'datelastborrowed', - last_seen_date => 'datelastseen', - not_for_loan_status => 'notforloan', - damaged_status => 'damaged', - damaged_date => 'damaged_on', - lost_status => 'itemlost', - lost_date => 'itemlost_on', - withdrawn => 'withdrawn', - withdrawn_date => 'withdrawn_on', - callnumber => 'itemcallnumber', - coded_location_qualifier => 'coded_location_qualifier', - checkouts_count => 'issues', - renewals_count => 'renewals', - holds_count => 'reserves', - restricted_status => 'restricted', - public_notes => 'itemnotes', - internal_notes => 'itemnotes_nonpublic', - holding_library_id => 'holdingbranch', - timestamp => 'timestamp', - location => 'location', - permanent_location => 'permanent_location', - checked_out_date => 'onloan', - call_number_source => 'cn_source', - call_number_sort => 'cn_sort', - collection_code => 'ccode', - materials_notes => 'materials', - uri => 'uri', - item_type => 'itype', - extended_subfields => 'more_subfields_xml', - serial_issue_number => 'enumchron', - copy_number => 'copynumber', - inventory_number => 'stocknumber', - new_status => 'new_status' -}; - 1;