Martin Renvoize
a702f57adf
We were cheating a bit here and expecting a 'debit' to be sent in but a 'line' to be returned. We should really be sending a debit and returning a debit.. so I've update the paths schema as such and we're now coercing the Koha::Account::Line object that's returned by Koha::Account->add_debit into a Koha::Account::Debit object. Longer term it would be nice to convert returns from the various Koha::Account methods to their correct Koha::Account:: objects as apposed to them all being the base ::Line I've also added some code to catch exceptions that can be thrown by Koha::Account->add_debit and added the appropriate 400 errors into the path specs again. Finally.. I added more unit tests to prove the above Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
230 lines
6.8 KiB
YAML
230 lines
6.8 KiB
YAML
---
|
|
"/patrons/{patron_id}/account":
|
|
get:
|
|
x-mojo-to: Patrons::Account#get
|
|
operationId: getPatronAccount
|
|
tags:
|
|
- patrons
|
|
summary: Get account information for a patron
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Patron's account balance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/patron_balance"
|
|
"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:
|
|
permissions:
|
|
borrowers: edit_borrowers
|
|
updatecharges: remaining_permissions
|
|
"/patrons/{patron_id}/account/credits":
|
|
get:
|
|
x-mojo-to: Patrons::Account#list_credits
|
|
operationId: listPatronCredits
|
|
tags:
|
|
- patrons
|
|
- credits
|
|
summary: List patron credits
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
|
|
- $ref: "../swagger.yaml#/parameters/match"
|
|
- $ref: "../swagger.yaml#/parameters/order_by"
|
|
- $ref: "../swagger.yaml#/parameters/page"
|
|
- $ref: "../swagger.yaml#/parameters/per_page"
|
|
- $ref: "../swagger.yaml#/parameters/q_param"
|
|
- $ref: "../swagger.yaml#/parameters/q_body"
|
|
- $ref: "../swagger.yaml#/parameters/q_header"
|
|
responses:
|
|
"200":
|
|
description: A list of credits
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "../swagger.yaml#/definitions/credit"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
borrowers: edit_borrowers
|
|
updatecharges: remaining_permissions
|
|
post:
|
|
x-mojo-to: Patrons::Account#add_credit
|
|
operationId: addPatronCredit
|
|
tags:
|
|
- patrons
|
|
summary: Add credit to a patron's account
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
|
|
- name: body
|
|
in: body
|
|
description: A JSON object containing credit information
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/patron_account_credit"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Credit added
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/account_line"
|
|
"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:
|
|
permissions:
|
|
updatecharges: remaining_permissions
|
|
"/patrons/{patron_id}/account/debits":
|
|
get:
|
|
x-mojo-to: Patrons::Account#list_debits
|
|
operationId: listPatronDebits
|
|
tags:
|
|
- patrons
|
|
- debits
|
|
summary: List patron debits
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
|
|
- $ref: "../swagger.yaml#/parameters/match"
|
|
- $ref: "../swagger.yaml#/parameters/order_by"
|
|
- $ref: "../swagger.yaml#/parameters/page"
|
|
- $ref: "../swagger.yaml#/parameters/per_page"
|
|
- $ref: "../swagger.yaml#/parameters/q_param"
|
|
- $ref: "../swagger.yaml#/parameters/q_body"
|
|
- $ref: "../swagger.yaml#/parameters/q_header"
|
|
responses:
|
|
"200":
|
|
description: A list of debits
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "../swagger.yaml#/definitions/debit"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"404":
|
|
description: Patron not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
borrowers: edit_borrowers
|
|
updatecharges: remaining_permissions
|
|
post:
|
|
x-mojo-to: Patrons::Account#add_debit
|
|
operationId: addPatronDebit
|
|
tags:
|
|
- patrons
|
|
summary: Add debit to a patron's account
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/patron_id_pp"
|
|
- name: body
|
|
in: body
|
|
description: A JSON object containing debit information
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/debit"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Debit added
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/debit"
|
|
"400":
|
|
description: Bad parameter
|
|
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:
|
|
permissions:
|
|
updatecharges: remaining_permissions
|