Koha/api/v1/swagger/paths/public_patrons.yaml
Tomas Cohen Arazi 252753f84f
Bug 33573: Add public endpoint for cancelling holds
This patch introduces a public endpoint for cancelling holds.
Cancellation requests are generated when the hold is waiting and
configuration allows requesting cancellation, as the OPAC does right
now.

Tests cover all the use cases.

To test:
1. Apply this patches
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/api/v1/patrons_holds.t
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-07-03 14:51:31 -03:00

218 lines
6.4 KiB
YAML

---
"/public/patrons/{patron_id}/password":
post:
x-mojo-to: Patrons::Password#set_public
operationId: setPatronPasswordPublic
tags:
- patrons
summary: Set password for a patron (public)
parameters:
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
- name: body
in: body
description: A JSON object containing password information
schema:
type: object
properties:
password:
description: New password (plain text)
type: string
password_repeated:
description: Repeated new password (plain text)
type: string
old_password:
description: Patron's original password
type: string
required:
- password
- password_repeated
- old_password
additionalProperties: false
produces:
- application/json
responses:
"200":
description: Password changed
"400":
description: Bad request
schema:
$ref: "../swagger.yaml#/definitions/error"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Patron not found
schema:
$ref: "../swagger.yaml#/definitions/error"
"500":
description: |
Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
schema:
$ref: "../swagger.yaml#/definitions/error"
"503":
description: Under maintenance
schema:
$ref: "../swagger.yaml#/definitions/error"
x-koha-authorization:
allow-owner: true
"/public/patrons/{patron_id}/guarantors/can_see_charges":
put:
x-mojo-to: Patrons#guarantors_can_see_charges
operationId: setPatronGuarantorsCanSeeCharges
tags:
- patrons
summary: Set if guarantors can see charges (public)
parameters:
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
- name: body
in: body
description: A boolean representing if guarantors should be able to see the
patron's charges
required: true
schema:
type: object
properties:
allowed:
type: boolean
additionalProperties: false
produces:
- application/json
responses:
"200":
description: Charges view policy for guarantors changed
"400":
description: Bad request
schema:
$ref: "../swagger.yaml#/definitions/error"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Patron not found
schema:
$ref: "../swagger.yaml#/definitions/error"
"500":
description: |
Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
schema:
$ref: "../swagger.yaml#/definitions/error"
"503":
description: Under maintenance
schema:
$ref: "../swagger.yaml#/definitions/error"
x-koha-authorization:
allow-owner: true
"/public/patrons/{patron_id}/guarantors/can_see_checkouts":
put:
x-mojo-to: Patrons#guarantors_can_see_checkouts
operationId: setPatronGuarantorsCanSeeCheckouts
tags:
- patrons
summary: Set if guarantors can see checkouts
parameters:
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
- name: body
in: body
description: A boolean representing if guarantors should be able to see the
patron's checkouts
required: true
schema:
type: object
properties:
allowed:
type: boolean
additionalProperties: false
produces:
- application/json
responses:
"200":
description: Check-out view policy for guarantors changed
"400":
description: Bad request
schema:
$ref: "../swagger.yaml#/definitions/error"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Patron not found
schema:
$ref: "../swagger.yaml#/definitions/error"
"500":
description: |
Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
schema:
$ref: "../swagger.yaml#/definitions/error"
"503":
description: Under maintenance
schema:
$ref: "../swagger.yaml#/definitions/error"
x-koha-authorization:
allow-owner: true
"/public/patrons/{patron_id}/holds/{hold_id}":
delete:
x-mojo-to: Patrons::Holds#delete_public
operationId: cancelPatronHoldPublic
tags:
- patrons
summary: Cancel a patron's hold (public)
parameters:
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
- $ref: "../swagger.yaml#/parameters/hold_id_pp"
produces:
- application/json
responses:
"202":
description: Hold cancellation request accepted
"204":
description: Hold cancelled
"400":
description: Bad request
schema:
$ref: "../swagger.yaml#/definitions/error"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Hold not found
schema:
$ref: "../swagger.yaml#/definitions/error"
"500":
description: |
Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
schema:
$ref: "../swagger.yaml#/definitions/error"
"503":
description: Under maintenance
schema:
$ref: "../swagger.yaml#/definitions/error"
x-koha-authorization:
allow-owner: true