@@ -, +, @@ "type": "array", "collectionFormat": "csv", "items": { "type": "string", "enum": [ "any" ] } $ kshell k$ prove t/db_dependent/api/v1/holds.t --- Koha/REST/V1/Holds.pm | 10 +++------- api/v1/swagger/paths/holds.json | 10 +++++++++- 2 files changed, 12 insertions(+), 8 deletions(-) --- a/Koha/REST/V1/Holds.pm +++ a/Koha/REST/V1/Holds.pm @@ -171,14 +171,10 @@ sub add { $can_place_hold->{status} = 'tooManyReserves'; } - my $override_header = $c->req->headers->header('x-koha-override'); - $override_header = decode_json($override_header) - if $override_header; + my $overrides = $c->stash('koha.overrides'); + my $can_override = $overrides->{any} and C4::Context->preference('AllowHoldPolicyOverride'); - my $can_override = $override_header->{AllowHoldPolicyOverride} - and C4::Context->preference('AllowHoldPolicyOverride'); - - unless ($can_override || $can_place_hold->{status} eq 'OK' ) { + unless ( $can_override || $can_place_hold->{status} eq 'OK' ) { return $c->render( status => 403, openapi => --- a/api/v1/swagger/paths/holds.json +++ a/api/v1/swagger/paths/holds.json @@ -171,7 +171,8 @@ "x-mojo-to": "Holds#add", "operationId": "addHold", "tags": ["patrons", "holds"], - "parameters": [{ + "parameters": [ + { "name": "body", "in": "body", "description": "A JSON object containing informations about the new hold", @@ -215,6 +216,13 @@ }, "required": [ "patron_id", "pickup_library_id" ] } + }, + { + "name": "x-koha-override", + "description": "Comma-separated list of overrides (valid values: any)", + "in": "header", + "type": "string", + "required": false } ], "consumes": ["application/json"], --