@@ -, +, @@ $ kshell k$ prove t/db_dependent/api/v1/holds.t --- Koha/Hold.pm | 34 +++++++++++++++++++++++++++++++++- Koha/REST/V1/Holds.pm | 10 ++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) --- a/Koha/Hold.pm +++ a/Koha/Hold.pm @@ -400,7 +400,39 @@ sub _move_to_old { return Koha::Old::Hold->new( $hold_infos )->store; } -=head3 type +=head3 to_api_mapping + +This method returns the mapping for representing a Koha::Hold object +on the API. + +=cut + +sub to_api_mapping { + return { + reserve_id => 'hold_id', + borrowernumber => 'patron_id', + reservedate => 'hold_date', + biblionumber => 'biblio_id', + branchcode => 'pickup_library_id', + notificationdate => undef, + reminderdate => undef, + cancellationdate => 'cancelation_date', + reservenotes => 'notes', + found => 'status', + itemnumber => 'item_id', + waitingdate => 'waiting_date', + expirationdate => 'expiration_date', + lowestPriority => 'lowest_priority', + suspend => 'suspended', + suspend_until => 'suspended_until', + itemtype => 'item_type', + item_level_hold => 'item_level', + }; +} + +=head2 Internal methods + +=head3 _type =cut --- a/Koha/REST/V1/Holds.pm +++ a/Koha/REST/V1/Holds.pm @@ -184,7 +184,10 @@ sub add { my $hold = Koha::Holds->find($hold_id); - return $c->render( status => 201, openapi => _to_api($hold->TO_JSON) ); + return $c->render( + status => 201, + openapi => $hold->to_api + ); } catch { if ( blessed $_ and $_->isa('Koha::Exceptions') ) { @@ -258,7 +261,10 @@ sub edit { C4::Reserves::ModReserve($params); $hold->discard_changes; # refresh - return $c->render( status => 200, openapi => _to_api( $hold->TO_JSON ) ); + return $c->render( + status => 200, + openapi => $hold->to_api + ); } =head3 delete --