Koha/api/v1/swagger/paths/tickets.yaml
Martin Renvoize dcf7688b94 Bug 31028: Add catalog concern management page to staff
This patch adds a catalog concern management page to the staff client
accessible via the cataloging home page and a new 'Pending catalog
concerns' link on the front page.

This includes added the requisit ticket_updates api endpoints and notice
triggers and templates for notifying patrons of changes to their
reported concerns.

Test plan
1) Enable the `OpacCatalogConcerns` system preference
2) Catalog concern management is tied to your users ability to edit the
   catalog, `editcatalogue`.
3) Confirm that you can see 'Catalog concerns' listed on the cataloging
   home page if you have the `editcatalogue` permission and not if you
   do not.
4) Add a new concern as an opac user.
5) Confirm that once a concern is present in the system you see a count
   of 'catalog concerns pending' on the intranet main page if you have
   the `editcatalogue` permission.
6) Click through either the cataloging home page or pending concerns
   link on the main page to view the new concerns management page.
7) Confirm the table displays as one would expect.
8) Confirm clicking on details or the concern title exposes a 'details'
   modal with the option to add an update or resolve the concern.
9) Verify that if selecting 'notify' when updateing or resolving a
   concern triggers a notice to be sent to the opac user who first
   reported the issue.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-03-06 11:23:17 -03:00

355 lines
9.8 KiB
YAML

---
/tickets:
get:
x-mojo-to: Tickets#list
operationId: listTickets
tags:
- tickets
summary: List tickets
produces:
- application/json
parameters:
- $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"
- $ref: "../swagger.yaml#/parameters/request_id_header"
- name: x-koha-embed
in: header
required: false
description: Embed list sent as a request header
type: array
items:
type: string
enum:
- reporter
- resolver
- biblio
- updates+count
collectionFormat: csv
responses:
"200":
description: A list of tickets
schema:
type: array
items:
$ref: "../swagger.yaml#/definitions/ticket"
"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:
catalogue: "1"
post:
x-mojo-to: Tickets#add
operationId: addTicket
tags:
- tickets
summary: Add ticket
parameters:
- name: body
in: body
description: A JSON object containing informations about the new ticket
required: true
schema:
$ref: "../swagger.yaml#/definitions/ticket"
produces:
- application/json
responses:
"201":
description: Ticket added
schema:
$ref: "../swagger.yaml#/definitions/ticket"
"401":
description: Authentication required
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:
catalogue: "1"
"/tickets/{ticket_id}":
get:
x-mojo-to: Tickets#get
operationId: getTicket
tags:
- tickets
summary: Get ticket
parameters:
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
produces:
- application/json
responses:
"200":
description: A ticket
schema:
$ref: "../swagger.yaml#/definitions/ticket"
"404":
description: Ticket 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:
catalogue: "1"
put:
x-mojo-to: Tickets#update
operationId: updateTicket
tags:
- tickets
summary: Update ticket
parameters:
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
- name: body
in: body
description: A ticket object
required: true
schema:
$ref: "../swagger.yaml#/definitions/ticket"
produces:
- application/json
responses:
"200":
description: A ticket
schema:
$ref: "../swagger.yaml#/definitions/ticket"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Ticket 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:
editcatalogue: edit_catalogue
delete:
x-mojo-to: Tickets#delete
operationId: deleteTicket
tags:
- tickets
summary: Delete ticket
parameters:
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
produces:
- application/json
responses:
"204":
description: Ticket deleted
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Ticket 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:
editcatalogue: edit_catalogue
"/tickets/{ticket_id}/updates":
get:
x-mojo-to: Tickets#list_updates
operationId: listTicketUpdates
tags:
- tickets
summary: List ticket updates
produces:
- application/json
parameters:
- $ref: "../swagger.yaml#/parameters/ticket_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"
- $ref: "../swagger.yaml#/parameters/request_id_header"
- name: x-koha-embed
in: header
required: false
description: Embed list sent as a request header
type: array
items:
type: string
enum:
- user
collectionFormat: csv
responses:
"200":
description: A list of ticket updates
schema:
type: array
items:
$ref: "../swagger.yaml#/definitions/ticket_update"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Ticket 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:
catalogue: "1"
post:
x-mojo-to: Tickets#add_update
operationId: addTicketUpdate
tags:
- tickets
summary: Add an update to the ticket
parameters:
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
- name: body
in: body
description: A ticket update object
required: true
schema:
$ref: "../swagger.yaml#/definitions/ticket_update"
produces:
- application/json
responses:
"201":
description: Ticket added
schema:
$ref: "../swagger.yaml#/definitions/ticket_update"
"401":
description: Authentication required
schema:
$ref: "../swagger.yaml#/definitions/error"
"403":
description: Access forbidden
schema:
$ref: "../swagger.yaml#/definitions/error"
"404":
description: Ticket 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:
editcatalogue: edit_catalogue
/public/tickets:
post:
x-mojo-to: Tickets#add
operationId: addTicketPublic
tags:
- tickets
summary: Add ticket
parameters:
- name: body
in: body
description: A JSON object containing informations about the new ticket
required: true
schema:
$ref: "../swagger.yaml#/definitions/ticket"
produces:
- application/json
responses:
"201":
description: Ticket added
schema:
$ref: "../swagger.yaml#/definitions/ticket"
"401":
description: Authentication required
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"