diff --git a/Koha/REST/V1/Holds.pm b/Koha/REST/V1/Holds.pm index ac9979e0ba..4d3c71684a 100644 --- a/Koha/REST/V1/Holds.pm +++ b/Koha/REST/V1/Holds.pm @@ -328,7 +328,8 @@ sub delete { ); } - $hold->cancel; + my $cancellation_reason = $c->req->json; + $hold->cancel( { cancellation_reason => $cancellation_reason } ); return $c->render_resource_deleted; } diff --git a/api/v1/swagger/paths/holds.yaml b/api/v1/swagger/paths/holds.yaml index abf00fd726..519f7ac0d7 100644 --- a/api/v1/swagger/paths/holds.yaml +++ b/api/v1/swagger/paths/holds.yaml @@ -403,6 +403,12 @@ summary: Cancel hold parameters: - $ref: "../swagger.yaml#/parameters/hold_id_pp" + - name: body + in: body + description: Cancellation reason + required: false + schema: + type: string - name: x-koha-override in: header required: false diff --git a/t/db_dependent/api/v1/holds.t b/t/db_dependent/api/v1/holds.t index 8632c25940..95c9a8cc2a 100755 --- a/t/db_dependent/api/v1/holds.t +++ b/t/db_dependent/api/v1/holds.t @@ -234,7 +234,7 @@ subtest "Test endpoints with permission" => sub { ->status_is(200) ->json_is([]); - $t->delete_ok( "//$userid_3:$password@/api/v1/holds/$reserve_id2" ) + $t->delete_ok( "//$userid_3:$password@/api/v1/holds/$reserve_id2" => json => "Cancellation reason" ) ->status_is(204, 'SWAGGER3.2.4') ->content_is('', 'SWAGGER3.3.4');