Koha/api/v1/swagger/paths/erm_eholdings_packages.yaml
Tomas Cohen Arazi 75cff54c53
Bug 34387: Improve API docs naming consistency
This patch aims to make our API docs be more consistent.
It addresses two particular things:

* There's no consistency on the `tags` used across the spec, and not all
  of them are correctly described and have an `x-displayName` entry.
  More on this later.
* This are not sorted either by some for of grouping, or at least
  alphabetically.

For the former, I did my best trying to harmonize (specially on the ERM
front) with what we do in the rest of the use cases.

For the latter, I opted for sorting everything alphabetically, as a
first step. Hoping someone else could work on grouping things.

To test (ON YOUR HOST MACHINE):
1. On current master run:
   $ cd api/v1/swagger
   $ docker run --rm -v $(pwd):/api --workdir /api redocly/cli \
           build-docs swagger.yaml --output index.html
=> SUCCESS: It doesn't break or anything
2. Open your browser, open the generated api/v1/swagger/index.html file
=> FAIL: The left column has
         * several lower case entries
         * not everything is correctly grouped (ERM? packages?)
         * Things are not sorted. There's an attempt but looks messy
3. Apply this patch
4. Repeat 1 and 2
=> SUCCESS: Things look much better!
5. Sign off :-D

CAVEAT1: I'm not sure why, but import_batches doesn't work. Ideas are
welcome, I'll keep looking for fixes.
CAVEAT2: I don't have enough eHoldings background to weight in, but I
feel like 'ERM eHoldings packages' could just be 'ERM packages'.
Follw-up patches with better ideas are welcome.
CAVEAT3: Patron credits, debits, balance... They could all go in to
'Patrons accounts' or similar. Open to ideas.
CAVEAT4: Old redocly didn't support mapping an endpoint to more than one
target section. Something to explore if we want (for example) to reach
'credits' through the 'Patrons' section but also from 'Accounting'.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-08-15 11:25:35 +03:00

405 lines
12 KiB
YAML

---
/erm/eholdings/{provider}/packages:
get:
x-mojo-to: ERM::EHoldings::Packages#list
operationId: listErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: List packages
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- description: Case insensitive search on package package_id
in: query
name: package_id
required: false
type: string
- description: Case insensitive search on package vendor_id
in: query
name: vendor_id
required: false
type: integer
- description: Case insensitive search on package name
in: query
name: name
required: false
type: string
- description: Case insensitive search on package external_package_id
in: query
name: external_package_id
required: false
type: integer
- description: Case insensitive search on package type
in: query
name: package_type
required: false
type: string
- description: Case insensitive search on package content_type
in: query
name: content_type
required: false
type: string
- description: Case insensitive search on package notes
in: query
name: notes
required: false
type: string
- description: Case insensitive search on package creation date
in: query
name: created_on
required: false
type: string
- $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"
- name: x-koha-embed
in: header
required: false
description: Embed list sent as a request header
type: array
items:
type: string
enum:
- vendor
- vendor.name
- resources+count
- resources
collectionFormat: csv
responses:
200:
description: A list of package
schema:
items:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
type: array
400:
description: Bad request
schema:
$ref: "../swagger.yaml#/definitions/error"
403:
description: Access forbidden
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:
erm: 1
post:
x-mojo-to: ERM::EHoldings::Packages#add
operationId: addErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: Add package
consumes:
- application/json
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- description: A JSON object containing information about the new package
in: body
name: body
required: true
schema:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
responses:
201:
description: A successfully created package
schema:
items:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
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: Ressource not found
schema:
$ref: "../swagger.yaml#/definitions/error"
409:
description: Conflict in creating resource
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:
erm: 1
"/erm/eholdings/{provider}/packages/{package_id}":
get:
x-mojo-to: ERM::EHoldings::Packages#get
operationId: getErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: Get eHoldings package
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
- name: x-koha-embed
in: header
required: false
description: Embed list sent as a request header
type: array
items:
type: string
enum:
- package_agreements
- package_agreements.agreement
- resources+count
- vendor
collectionFormat: csv
responses:
200:
description: A package
schema:
items:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
401:
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
403:
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
404:
description: Ressource 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:
erm: 1
put:
x-mojo-to: ERM::EHoldings::Packages#update
operationId: updateErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: Update eHoldings package
consumes:
- application/json
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
- name: body
in: body
description: A JSON object containing new information about existing package
required: true
schema:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
- name: x-koha-embed
in: header
required: false
description: Embed list sent as a request header
type: array
items:
type: string
enum:
- agreements
- resources
collectionFormat: csv
responses:
200:
description: A successfully updated package
schema:
items:
$ref: "../swagger.yaml#/definitions/erm_eholdings_package"
400:
description: Bad parameter
schema:
$ref: "../swagger.yaml#/definitions/error"
403:
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
404:
description: Ressource not found
schema:
$ref: "../swagger.yaml#/definitions/error"
409:
description: Conflict in updating resource
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:
erm: 1
delete:
x-mojo-to: ERM::EHoldings::Packages#delete
operationId: deleteErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: Delete eHoldings package
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
responses:
204:
description: package deleted
400:
description: package deletion failed
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: Ressource not found
schema:
$ref: "../swagger.yaml#/definitions/error"
409:
description: Conflict in deleting resource
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:
erm: 1
patch:
x-mojo-to: ERM::EHoldings::Packages#edit
operationId: editErmEHoldingsPackages
tags:
- erm_eholdings_packages
summary: Edit a package
produces:
- application/json
parameters:
- description: Provider name
in: path
name: provider
required: true
type: string
- description: A JSON object containing the fields to edit
in: body
name: body
required: true
schema:
type: object
properties:
is_selected:
description: Add or remove this package from remote holdings
type: boolean
additionalProperties: false
- $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
responses:
200:
description: What has been modified
schema:
type: object
properties:
is_selected:
description: Add or remove this package from remote holdings
type: boolean
additionalProperties: false
401:
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
403:
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
404:
description: Package 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:
erm: 1