Bug 30275: Add `/api/v1/checkouts/{checkout_id}/renewals`
[koha.git] / api / v1 / swagger / paths / checkouts.yaml
1 ---
2 /checkouts:
3   get:
4     x-mojo-to: Checkouts#list
5     operationId: listCheckouts
6     tags:
7       - checkouts
8     summary: List checkouts
9     parameters:
10       - $ref: "../swagger.yaml#/parameters/patron_id_qp"
11       - $ref: "../swagger.yaml#/parameters/page"
12       - $ref: "../swagger.yaml#/parameters/per_page"
13       - $ref: "../swagger.yaml#/parameters/match"
14       - $ref: "../swagger.yaml#/parameters/order_by"
15       - $ref: "../swagger.yaml#/parameters/q_param"
16       - $ref: "../swagger.yaml#/parameters/q_body"
17       - $ref: "../swagger.yaml#/parameters/q_header"
18       - $ref: "../swagger.yaml#/parameters/request_id_header"
19       - name: checked_in
20         in: query
21         description: By default, current checkouts are returned, when this is true then
22           checked in checkouts are returned as result.
23         type: boolean
24       - name: x-koha-embed
25         in: header
26         required: false
27         description: Embed list sent as a request header
28         type: array
29         items:
30           type: string
31           enum:
32             - issuer
33         collectionFormat: csv
34     produces:
35       - application/json
36     responses:
37       "200":
38         description: A list of checkouts
39         schema:
40           $ref: "../swagger.yaml#/definitions/checkouts"
41       "403":
42         description: Access forbidden
43         schema:
44           $ref: "../swagger.yaml#/definitions/error"
45       "404":
46         description: Patron not found
47         schema:
48           $ref: "../swagger.yaml#/definitions/error"
49       "500":
50         description: |
51           Internal server error. Possible `error_code` attribute values:
52
53           * `internal_server_error`
54         schema:
55           $ref: "../swagger.yaml#/definitions/error"
56       "503":
57         description: Under maintenance
58         schema:
59           $ref: "../swagger.yaml#/definitions/error"
60     x-koha-authorization:
61       permissions:
62         circulate: circulate_remaining_permissions
63 "/checkouts/{checkout_id}":
64   get:
65     x-mojo-to: Checkouts#get
66     operationId: getCheckout
67     tags:
68       - checkouts
69     summary: Get checkout
70     parameters:
71       - $ref: "../swagger.yaml#/parameters/checkout_id_pp"
72       - name: x-koha-embed
73         in: header
74         required: false
75         description: Embed list sent as a request header
76         type: array
77         items:
78           type: string
79           enum:
80             - issuer
81             - renewals
82         collectionFormat: csv
83     produces:
84       - application/json
85     responses:
86       "200":
87         description: Updated borrower's checkout
88         schema:
89           $ref: "../swagger.yaml#/definitions/checkout"
90       "403":
91         description: Access forbidden
92         schema:
93           $ref: "../swagger.yaml#/definitions/error"
94       "404":
95         description: Checkout not found
96         schema:
97           $ref: "../swagger.yaml#/definitions/error"
98       "500":
99         description: |
100           Internal server error. Possible `error_code` attribute values:
101
102           * `internal_server_error`
103         schema:
104           $ref: "../swagger.yaml#/definitions/error"
105       "503":
106         description: Under maintenance
107         schema:
108           $ref: "../swagger.yaml#/definitions/error"
109     x-koha-authorization:
110       permissions:
111         circulate: circulate_remaining_permissions
112 "/checkouts/{checkout_id}/renewal":
113   post:
114     x-mojo-to: Checkouts#renew
115     operationId: renewCheckout
116     tags:
117       - checkouts
118     summary: Renew a checkout
119     parameters:
120       - $ref: "../swagger.yaml#/parameters/checkout_id_pp"
121       - $ref: "../swagger.yaml#/parameters/seen_pp"
122     produces:
123       - application/json
124     responses:
125       "201":
126         description: Updated borrower's checkout
127         schema:
128           $ref: "../swagger.yaml#/definitions/checkout"
129       "403":
130         description: Cannot renew checkout
131         schema:
132           $ref: "../swagger.yaml#/definitions/error"
133       "404":
134         description: Checkout not found
135         schema:
136           $ref: "../swagger.yaml#/definitions/error"
137       "500":
138         description: |
139           Internal server error. Possible `error_code` attribute values:
140
141           * `internal_server_error`
142         schema:
143           $ref: "../swagger.yaml#/definitions/error"
144       "503":
145         description: Under maintenance
146         schema:
147           $ref: "../swagger.yaml#/definitions/error"
148     x-koha-authorization:
149       permissions:
150         circulate: circulate_remaining_permissions
151 "/checkouts/{checkout_id}/renewals":
152   get:
153     x-mojo-to: Checkouts#get_renewals
154     operationId: getRenewals
155     tags:
156       - checkouts
157     summary: List renewals for a checkout
158     parameters:
159       - $ref: ../parameters.yaml#/checkout_id_pp
160     produces:
161       - application/json
162     responses:
163       "200":
164         description: List of checkouts renewals
165         schema:
166           $ref: ../definitions.yaml#/renewal
167       "403":
168         description: Access forbidden
169         schema:
170           $ref: ../definitions.yaml#/error
171       "404":
172         description: Checkout not found
173         schema:
174           $ref: ../definitions.yaml#/error
175       "500":
176         description: |
177           Internal server error. Possible `error_code` attribute values:
178
179           * `internal_server_error`
180         schema:
181           $ref: ../definitions.yaml#/error
182       "503":
183         description: Under maintenance
184         schema:
185           $ref: ../definitions.yaml#/error
186     x-koha-authorization:
187       permissions:
188         circulate: circulate_remaining_permissions
189     x-koha-embed:
190         - renewer
191 "/checkouts/{checkout_id}/allows_renewal":
192   get:
193     x-mojo-to: Checkouts#allows_renewal
194     operationId: allows_renewalCheckout
195     tags:
196       - checkouts
197     summary: Get renewability for a checkout
198     parameters:
199       - $ref: "../swagger.yaml#/parameters/checkout_id_pp"
200     produces:
201       - application/json
202     responses:
203       "200":
204         description: Checkout renewability information
205         schema:
206           $ref: "../swagger.yaml#/definitions/allows_renewal"
207       "403":
208         description: Forbidden
209         schema:
210           $ref: "../swagger.yaml#/definitions/error"
211       "404":
212         description: Checkout not found
213         schema:
214           $ref: "../swagger.yaml#/definitions/error"
215       "500":
216         description: |
217           Internal server error. Possible `error_code` attribute values:
218
219           * `internal_server_error`
220         schema:
221           $ref: "../swagger.yaml#/definitions/error"
222       "503":
223         description: Under maintenance
224         schema:
225           $ref: "../swagger.yaml#/definitions/error"
226     x-koha-authorization:
227       permissions:
228         circulate: circulate_remaining_permissions