|
Lines 48-65
sub list {
Link Here
|
| 48 |
return $c->render( status => 200, openapi => $holds ); |
48 |
return $c->render( status => 200, openapi => $holds ); |
| 49 |
} |
49 |
} |
| 50 |
catch { |
50 |
catch { |
| 51 |
if ( blessed $_ && $_->isa('Koha::Exceptions') ) { |
51 |
$c->unhandled_exception($_); |
| 52 |
return $c->render( |
|
|
| 53 |
status => 500, |
| 54 |
openapi => { error => "$_" } |
| 55 |
); |
| 56 |
} |
| 57 |
else { |
| 58 |
return $c->render( |
| 59 |
status => 500, |
| 60 |
openapi => { error => "Something went wrong, check Koha logs for details." } |
| 61 |
); |
| 62 |
} |
| 63 |
}; |
52 |
}; |
| 64 |
} |
53 |
} |
| 65 |
|
54 |
|
|
Lines 201-226
sub add {
Link Here
|
| 201 |
openapi => Koha::Holds->new->to_api_mapping->{$broken_fk} . ' not found.' |
190 |
openapi => Koha::Holds->new->to_api_mapping->{$broken_fk} . ' not found.' |
| 202 |
); |
191 |
); |
| 203 |
} |
192 |
} |
| 204 |
else { |
|
|
| 205 |
return $c->render( |
| 206 |
status => 500, |
| 207 |
openapi => { error => "Uncaught exception: $_" } |
| 208 |
); |
| 209 |
} |
| 210 |
} |
| 211 |
else { |
| 212 |
return $c->render( |
| 213 |
status => 500, |
| 214 |
openapi => { error => "$_" } |
| 215 |
); |
| 216 |
} |
193 |
} |
| 217 |
} |
194 |
} |
| 218 |
else { |
195 |
|
| 219 |
return $c->render( |
196 |
$c->unhandled_exception($_); |
| 220 |
status => 500, |
|
|
| 221 |
openapi => { error => "Something went wrong. check the logs." } |
| 222 |
); |
| 223 |
} |
| 224 |
}; |
197 |
}; |
| 225 |
} |
198 |
} |
| 226 |
|
199 |
|
|
Lines 233-268
Method that handles modifying a Koha::Hold object
Link Here
|
| 233 |
sub edit { |
206 |
sub edit { |
| 234 |
my $c = shift->openapi->valid_input or return; |
207 |
my $c = shift->openapi->valid_input or return; |
| 235 |
|
208 |
|
| 236 |
my $hold_id = $c->validation->param('hold_id'); |
209 |
return try { |
| 237 |
my $hold = Koha::Holds->find( $hold_id ); |
210 |
my $hold_id = $c->validation->param('hold_id'); |
|
|
211 |
my $hold = Koha::Holds->find( $hold_id ); |
| 238 |
|
212 |
|
| 239 |
unless ($hold) { |
213 |
unless ($hold) { |
| 240 |
return $c->render( status => 404, |
214 |
return $c->render( status => 404, |
| 241 |
openapi => {error => "Hold not found"} ); |
215 |
openapi => {error => "Hold not found"} ); |
| 242 |
} |
216 |
} |
| 243 |
|
217 |
|
| 244 |
my $body = $c->req->json; |
218 |
my $body = $c->req->json; |
| 245 |
|
219 |
|
| 246 |
my $pickup_library_id = $body->{pickup_library_id} // $hold->branchcode; |
220 |
my $pickup_library_id = $body->{pickup_library_id} // $hold->branchcode; |
| 247 |
my $priority = $body->{priority} // $hold->priority; |
221 |
my $priority = $body->{priority} // $hold->priority; |
| 248 |
# suspended_until can also be set to undef |
222 |
# suspended_until can also be set to undef |
| 249 |
my $suspended_until = exists $body->{suspended_until} ? $body->{suspended_until} : $hold->suspend_until; |
223 |
my $suspended_until = exists $body->{suspended_until} ? $body->{suspended_until} : $hold->suspend_until; |
| 250 |
|
224 |
|
| 251 |
my $params = { |
225 |
my $params = { |
| 252 |
reserve_id => $hold_id, |
226 |
reserve_id => $hold_id, |
| 253 |
branchcode => $pickup_library_id, |
227 |
branchcode => $pickup_library_id, |
| 254 |
rank => $priority, |
228 |
rank => $priority, |
| 255 |
suspend_until => $suspended_until ? output_pref(dt_from_string($suspended_until, 'rfc3339')) : '', |
229 |
suspend_until => $suspended_until ? output_pref(dt_from_string($suspended_until, 'rfc3339')) : '', |
| 256 |
itemnumber => $hold->itemnumber |
230 |
itemnumber => $hold->itemnumber |
| 257 |
}; |
231 |
}; |
| 258 |
|
232 |
|
| 259 |
C4::Reserves::ModReserve($params); |
233 |
C4::Reserves::ModReserve($params); |
| 260 |
$hold->discard_changes; # refresh |
234 |
$hold->discard_changes; # refresh |
| 261 |
|
235 |
|
| 262 |
return $c->render( |
236 |
return $c->render( |
| 263 |
status => 200, |
237 |
status => 200, |
| 264 |
openapi => $hold->to_api |
238 |
openapi => $hold->to_api |
| 265 |
); |
239 |
); |
|
|
240 |
} |
| 241 |
catch { |
| 242 |
$c->unhandled_exception($_); |
| 243 |
}; |
| 266 |
} |
244 |
} |
| 267 |
|
245 |
|
| 268 |
=head3 delete |
246 |
=head3 delete |
|
Lines 281-289
sub delete {
Link Here
|
| 281 |
return $c->render( status => 404, openapi => { error => "Hold not found." } ); |
259 |
return $c->render( status => 404, openapi => { error => "Hold not found." } ); |
| 282 |
} |
260 |
} |
| 283 |
|
261 |
|
| 284 |
$hold->cancel; |
262 |
return try { |
|
|
263 |
$hold->cancel; |
| 285 |
|
264 |
|
| 286 |
return $c->render( status => 200, openapi => {} ); |
265 |
return $c->render( status => 200, openapi => {} ); |
|
|
266 |
} |
| 267 |
catch { |
| 268 |
$c->unhandled_exception($_); |
| 269 |
}; |
| 287 |
} |
270 |
} |
| 288 |
|
271 |
|
| 289 |
=head3 suspend |
272 |
=head3 suspend |
|
Lines 329-340
sub suspend {
Link Here
|
| 329 |
if ( blessed $_ and $_->isa('Koha::Exceptions::Hold::CannotSuspendFound') ) { |
312 |
if ( blessed $_ and $_->isa('Koha::Exceptions::Hold::CannotSuspendFound') ) { |
| 330 |
return $c->render( status => 400, openapi => { error => "$_" } ); |
313 |
return $c->render( status => 400, openapi => { error => "$_" } ); |
| 331 |
} |
314 |
} |
| 332 |
else { |
315 |
|
| 333 |
return $c->render( |
316 |
$c->unhandled_exception($_); |
| 334 |
status => 500, |
|
|
| 335 |
openapi => { error => "Something went wrong. check the logs." } |
| 336 |
); |
| 337 |
} |
| 338 |
}; |
317 |
}; |
| 339 |
} |
318 |
} |
| 340 |
|
319 |
|
|
Lines 360-369
sub resume {
Link Here
|
| 360 |
return $c->render( status => 204, openapi => {} ); |
339 |
return $c->render( status => 204, openapi => {} ); |
| 361 |
} |
340 |
} |
| 362 |
catch { |
341 |
catch { |
| 363 |
return $c->render( |
342 |
$c->unhandled_exception($_); |
| 364 |
status => 500, |
|
|
| 365 |
openapi => { error => "Something went wrong. check the logs." } |
| 366 |
); |
| 367 |
}; |
343 |
}; |
| 368 |
} |
344 |
} |
| 369 |
|
345 |
|
|
Lines 398-407
sub update_priority {
Link Here
|
| 398 |
return $c->render( status => 200, openapi => $priority ); |
374 |
return $c->render( status => 200, openapi => $priority ); |
| 399 |
} |
375 |
} |
| 400 |
catch { |
376 |
catch { |
| 401 |
return $c->render( |
377 |
$c->unhandled_exception($_); |
| 402 |
status => 500, |
|
|
| 403 |
openapi => { error => "Something went wrong. check the logs." } |
| 404 |
); |
| 405 |
}; |
378 |
}; |
| 406 |
} |
379 |
} |
| 407 |
|
380 |
|