Koha/api/v1/swagger/paths/transfer_limits.yaml
Kyle M Hall 22cd0ee395 Bug 26633: Add API documentation
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-03-16 16:08:30 +01:00

292 lines
8.5 KiB
YAML

---
"/transfer_limits":
get:
x-mojo-to: TransferLimits#list
operationId: listTransferLimits
description: "This resource returns a list of existing transfer limits."
tags:
- transfer
parameters:
- name: to_library_id
in: query
description: Search on to_library_id
required: false
type: string
- name: from_library_id
in: query
description: Search on from_library_id
required: false
type: string
- name: item_type
in: query
description: Search on item_type
required: false
type: string
- name: collection_code
in: query
description: Search on collection_code
required: false
type: string
- "$ref": "../parameters.json#/match"
- "$ref": "../parameters.json#/order_by"
- "$ref": "../parameters.json#/page"
- "$ref": "../parameters.json#/per_page"
- "$ref": "../parameters.json#/q_param"
- "$ref": "../parameters.json#/q_body"
- "$ref": "../parameters.json#/q_header"
produces:
- application/json
responses:
'200':
description: A list of transfer limits
schema:
type: array
items:
"$ref": "../definitions.json#/transfer_limit"
'500':
description: Internal error
schema:
"$ref": "../definitions.json#/error"
'503':
description: Under maintenance
schema:
"$ref": "../definitions.json#/error"
x-koha-authorization:
permissions:
parameters: manage_transfers
post:
x-mojo-to: TransferLimits#add
operationId: addTransferLimit
description: "This resource accepts a new transfer limit and creates it if it does not already exist."
tags:
- transfer
parameters:
- name: body
in: body
description: A JSON object containing information about a new transfer limit
required: true
schema:
"$ref": "../definitions.json#/transfer_limit"
produces:
- application/json
responses:
'201':
description: Transfer limit added
schema:
"$ref": "../definitions.json#/transfer_limit"
'400':
description: Bad request
schema:
"$ref": "../definitions.json#/error"
'401':
description: Authentication required
schema:
"$ref": "../definitions.json#/error"
'403':
description: Access forbidden
schema:
"$ref": "../definitions.json#/error"
'409':
description: Conflict in creating resource
schema:
"$ref": "../definitions.json#/error"
'500':
description: Internal error
schema:
"$ref": "../definitions.json#/error"
'503':
description: Under maintenance
schema:
"$ref": "../definitions.json#/error"
x-koha-authorization:
permissions:
parameters: manage_transfers
"/transfer_limits/{limit_id}":
delete:
x-mojo-to: TransferLimits#delete
operationId: deleteTransferLimit
description: "This resource deletes a transfer limit for the given limit id"
tags:
- transfer
parameters:
- "$ref": "../parameters.json#/transfer_limit_id_pp"
produces:
- application/json
responses:
'204':
description: Transfer limit deleted
schema:
type: string
'401':
description: Authentication required
schema:
"$ref": "../definitions.json#/error"
'403':
description: Access forbidden
schema:
"$ref": "../definitions.json#/error"
'404':
description: Library not found
schema:
"$ref": "../definitions.json#/error"
'500':
description: Internal error
schema:
"$ref": "../definitions.json#/error"
'503':
description: Under maintenance
schema:
"$ref": "../definitions.json#/error"
x-koha-authorization:
permissions:
parameters: manage_transfers
"/transfer_limits/batch":
post:
x-mojo-to: TransferLimits#batch_add
operationId: batchAddTransferLimits
description: "This resource batch creates new transfer limits based on the given data.
For example, if the paramters `to_library_id: 'BranchA'` and `item_type: 'BOOK'` are passed in
new transfer limits for `BOOK`s will be created, with one transfer limit each for all the
branches defined in Koha. Given 4 branches, 3 limits would be created:
* to_library_id: 'BranchA', from_library_id: 'BranchB', item_type: 'BOOK'
* to_library_id: 'BranchA', from_library_id: 'BranchC', item_type: 'BOOK'
* to_library_id: 'BranchA', from_library_id: 'BranchD', item_type: 'BOOK'
The body of the query would look like
```
{
'to_library_id': 'BranchA',
'item_type': 'BOOK'
}
```
As another example, imagine we have an itemtype that is never supposed to be transferred to another library.
If we call that itemtype `LOCAL_ONLY` we would need to just pass `item_type: 'LOCAL_ONLY'`, which would create transfer
limits for all libraries, meaning those items would never be allowed to transfer to another
library. The body of the query would look like
```
{
'item_type': 'LOCAL_ONLY'
}
```"
tags:
- transfer
parameters:
- name: body
in: body
description: A JSON object containing information about new transfer limits.
required: true
schema:
type: object
properties:
to_library_id:
type: string
description: Internal library id for which library the item is going to
from_library_id:
type: string
description: Internal library id for which library the item is coming
from
item_type:
type:
- string
- 'null'
description: Itemtype defining the type for this limi
collection_code:
type:
- string
- 'null'
description: Authorized value for the collection code associated with
this limit
additionalProperties: false
produces:
- application/json
responses:
'201':
description: A list of transfer limits
schema:
type: array
items:
"$ref": "../definitions.json#/transfer_limit"
'500':
description: Internal error
schema:
"$ref": "../definitions.json#/error"
'503':
description: Under maintenance
schema:
"$ref": "../definitions.json#/error"
x-koha-authorization:
permissions:
parameters: manage_transfers
delete:
x-mojo-to: TransferLimits#batch_delete
operationId: batchDeleteTransferLimits
description: 'This endpoint works just like [the POST version](#op-post-transfer_limits-batch), except it deletes transfer in batch
rather than creating them.'
tags:
- transfer
parameters:
- name: body
in: body
description: A JSON object containing information about new transfer limits.
required: true
schema:
type: object
properties:
to_library_id:
type: string
description: Internal library id for which library the item is going to
from_library_id:
type: string
description: Internal library id for which library the item is coming
from
item_type:
type:
- string
- 'null'
description: Itemtype defining the type for this limi
collection_code:
type:
- string
- 'null'
description: Authorized value for the collection code associated with
this limit
additionalProperties: false
produces:
- application/json
responses:
'204':
description: Transfer limits deleted
schema:
type: string
'401':
description: Authentication required
schema:
"$ref": "../definitions.json#/error"
'403':
description: Access forbidden
schema:
"$ref": "../definitions.json#/error"
'404':
description: Library not found
schema:
"$ref": "../definitions.json#/error"
'500':
description: Internal error
schema:
"$ref": "../definitions.json#/error"
'503':
description: Under maintenance
schema:
"$ref": "../definitions.json#/error"
x-koha-authorization:
permissions:
parameters: manage_transfers