Bug 14697: Add routes to handle return claims
[koha.git] / api / v1 / swagger / paths / return_claims.json
1 {
2   "/return_claims": {
3     "post": {
4       "x-mojo-to": "ReturnClaims#claim_returned",
5       "operationId": "claimReturned",
6       "tags": [
7         "claims",
8         "returned",
9         "return",
10         "claim"
11       ],
12       "parameters": [
13         {
14           "name": "body",
15           "in": "body",
16           "description": "A JSON object containing fields to modify",
17           "required": true,
18           "schema": {
19             "type": "object",
20             "properties": {
21               "item_id" : {
22                 "description": "Internal item id to claim as returned",
23                 "type": "integer"
24               },
25               "notes": {
26                 "description": "Notes about this return claim",
27                 "type": "string"
28               },
29               "created_by": {
30                 "description": "User id for the librarian submitting this claim",
31                 "type": "string"
32               },
33               "charge_lost_fee": {
34                 "description": "Charge a lost fee if true and Koha is set to allow a choice. Ignored otherwise.",
35                 "type": "boolean"
36               }
37             }
38           }
39         }
40       ],
41       "produces": [
42         "application/json"
43       ],
44       "responses": {
45         "201": {
46           "description": "Created claim",
47           "schema": {
48             "$ref": "../definitions.json#/return_claim"
49           }
50         },
51         "400": {
52           "description": "Bad request",
53           "schema": {
54             "$ref": "../definitions.json#/error"
55           }
56         },
57         "401": {
58           "description": "Authentication required",
59           "schema": {
60             "$ref": "../definitions.json#/error"
61           }
62         },
63         "403": {
64           "description": "Access forbidden",
65           "schema": {
66             "$ref": "../definitions.json#/error"
67           }
68         },
69         "404": {
70           "description": "Checkout not found",
71           "schema": {
72             "$ref": "../definitions.json#/error"
73           }
74         },
75         "500": {
76           "description": "Internal server error",
77           "schema": {
78             "$ref": "../definitions.json#/error"
79           }
80         },
81         "503": {
82           "description": "Under maintenance",
83           "schema": {
84             "$ref": "../definitions.json#/error"
85           }
86         }
87       },
88       "x-koha-authorization": {
89         "permissions": {
90           "circulate": "circulate_remaining_permissions"
91         }
92       }
93     }
94   },
95   "/return_claims/{claim_id}/notes": {
96     "put": {
97       "x-mojo-to": "ReturnClaims#update_notes",
98       "operationId": "updateClaimNotes",
99       "tags": [
100         "claims",
101         "returned",
102         "return",
103         "claim",
104         "notes"
105       ],
106       "parameters": [
107         {
108           "name": "claim_id",
109           "in": "path",
110           "required": true,
111           "description": "Unique identifier for the claim whose notes are to be updated",
112           "type": "integer"
113         },
114         {
115           "name": "body",
116           "in": "body",
117           "description": "A JSON object containing fields to modify",
118           "required": true,
119           "schema": {
120             "type": "object",
121             "properties": {
122               "notes": {
123                 "description": "Notes about this return claim",
124                 "type": "string"
125               },
126               "updated_by": {
127                 "description": "User id for the librarian updating the claim notes",
128                 "type": "string"
129               }
130             }
131           }
132         }
133       ],
134       "produces": [
135         "application/json"
136       ],
137       "responses": {
138         "200": {
139           "description": "Claim notes updated",
140           "schema": {
141             "$ref": "../definitions.json#/return_claim"
142           }
143         },
144         "400": {
145           "description": "Bad request",
146           "schema": {
147             "$ref": "../definitions.json#/error"
148           }
149         },
150         "401": {
151           "description": "Authentication required",
152           "schema": {
153             "$ref": "../definitions.json#/error"
154           }
155         },
156         "403": {
157           "description": "Access forbidden",
158           "schema": {
159             "$ref": "../definitions.json#/error"
160           }
161         },
162         "404": {
163           "description": "Claim not found",
164           "schema": {
165             "$ref": "../definitions.json#/error"
166           }
167         },
168         "500": {
169           "description": "Internal server error",
170           "schema": {
171             "$ref": "../definitions.json#/error"
172           }
173         },
174         "503": {
175           "description": "Under maintenance",
176           "schema": {
177             "$ref": "../definitions.json#/error"
178           }
179         }
180       },
181       "x-koha-authorization": {
182         "permissions": {
183           "circulate": "circulate_remaining_permissions"
184         }
185       }
186     }
187   },
188   "/return_claims/{claim_id}": {
189     "delete": {
190       "x-mojo-to": "ReturnClaims#delete_claim",
191       "operationId": "deletedClaim",
192       "tags": [
193         "claims",
194         "returned",
195         "return",
196         "claim",
197         "delete"
198       ],
199       "parameters": [
200         {
201           "name": "claim_id",
202           "in": "path",
203           "required": true,
204           "description": "Unique identifier for the claim to be deleted",
205           "type": "integer"
206         }
207       ],
208       "produces": [
209         "application/json"
210       ],
211       "responses": {
212         "200": {
213           "description": "Claim deleted",
214           "schema": {
215             "$ref": "../definitions.json#/return_claim"
216           }
217         },
218         "400": {
219           "description": "Bad request",
220           "schema": {
221             "$ref": "../definitions.json#/error"
222           }
223         },
224         "401": {
225           "description": "Authentication required",
226           "schema": {
227             "$ref": "../definitions.json#/error"
228           }
229         },
230         "403": {
231           "description": "Access forbidden",
232           "schema": {
233             "$ref": "../definitions.json#/error"
234           }
235         },
236         "404": {
237           "description": "Claim not found",
238           "schema": {
239             "$ref": "../definitions.json#/error"
240           }
241         },
242         "500": {
243           "description": "Internal server error",
244           "schema": {
245             "$ref": "../definitions.json#/error"
246           }
247         },
248         "503": {
249           "description": "Under maintenance",
250           "schema": {
251             "$ref": "../definitions.json#/error"
252           }
253         }
254       },
255       "x-koha-authorization": {
256         "permissions": {
257           "circulate": "circulate_remaining_permissions"
258         }
259       }
260     }
261   },
262   "/return_claims/{claim_id}/resolve": {
263     "put": {
264       "x-mojo-to": "ReturnClaims#resolve_claim",
265       "operationId": "updateClaimResolve",
266       "tags": [
267         "claims",
268         "returned",
269         "return",
270         "claim",
271         "notes"
272       ],
273       "parameters": [
274         {
275           "name": "claim_id",
276           "in": "path",
277           "required": true,
278           "description": "Unique identifier for the claim to be resolved",
279           "type": "integer"
280         },
281         {
282           "name": "body",
283           "in": "body",
284           "description": "A JSON object containing fields to modify",
285           "required": true,
286           "schema": {
287             "type": "object",
288             "properties": {
289               "resolution": {
290                 "description": "The RETURN_CLAIM_RESOLUTION code to be used to resolve the calim",
291                 "type": "string"
292               },
293               "resolved_by": {
294                 "description": "User id for the librarian resolving the claim",
295                 "type": "string"
296               }
297             }
298           }
299         }
300       ],
301       "produces": [
302         "application/json"
303       ],
304       "responses": {
305         "200": {
306           "description": "Claim resolved",
307           "schema": {
308             "$ref": "../definitions.json#/return_claim"
309           }
310         },
311         "400": {
312           "description": "Bad request",
313           "schema": {
314             "$ref": "../definitions.json#/error"
315           }
316         },
317         "401": {
318           "description": "Authentication required",
319           "schema": {
320             "$ref": "../definitions.json#/error"
321           }
322         },
323         "403": {
324           "description": "Access forbidden",
325           "schema": {
326             "$ref": "../definitions.json#/error"
327           }
328         },
329         "404": {
330           "description": "Claim not found",
331           "schema": {
332             "$ref": "../definitions.json#/error"
333           }
334         },
335         "500": {
336           "description": "Internal server error",
337           "schema": {
338             "$ref": "../definitions.json#/error"
339           }
340         },
341         "503": {
342           "description": "Under maintenance",
343           "schema": {
344             "$ref": "../definitions.json#/error"
345           }
346         }
347       },
348       "x-koha-authorization": {
349         "permissions": {
350           "circulate": "circulate_remaining_permissions"
351         }
352       }
353     }
354   }
355 }