From d7b6d7b4487b7fbf5d3835a9bdd08518c06c44fa Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 24 Jul 2023 16:08:50 -0300 Subject: [PATCH] Bug 34365: Add cancellation request flow to DELETE /holds This patch adds a new `x-koha-override` header to allow enforcing the cancellation request flow for waiting holds. If the hold is not waiting, the header has no effect. To test: 1. Apply the tests patch 2. Run: $ ktd --shell k$ prove t/db_dependent/api/v1/holds.t => FAIL: The endpoint doesn't implement the required logic 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! The endpoint behavior is changed! 5. Sign off :-D Signed-off-by: Emily Lamancusa Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi (cherry picked from commit eb224540e223d71f1f494b94ce3442567a1c6664) Signed-off-by: Fridolin Somers (cherry picked from commit e4e145eb4ad61db989395e45dbe082c0df7feff4) Signed-off-by: Pedro Amorim --- Koha/REST/V1/Holds.pm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Koha/REST/V1/Holds.pm b/Koha/REST/V1/Holds.pm index a8a998ef12..41cb28897c 100644 --- a/Koha/REST/V1/Holds.pm +++ b/Koha/REST/V1/Holds.pm @@ -320,6 +320,19 @@ sub delete { } return try { + + my $overrides = $c->stash('koha.overrides'); + + if ( $overrides->{'cancellation-request-flow'} && $hold->is_waiting ) { + + $hold->add_cancellation_request; + + return $c->render( + status => 202, + openapi => q{}, + ); + } + $hold->cancel; return $c->render( -- 2.39.2