View | Details | Raw Unified | Return to bug 24401
Collapse All | Expand All

(-)a/Koha/REST/V1/Checkouts.pm (-1 / +45 lines)
Lines 22-28 use Mojo::JSON; Link Here
22
22
23
use C4::Auth qw( haspermission );
23
use C4::Auth qw( haspermission );
24
use C4::Context;
24
use C4::Context;
25
use C4::Circulation qw( AddIssue AddRenewal CanBookBeRenewed );
25
use C4::Circulation qw( AddIssue AddRenewal CanBookBeRenewed AddReturn );
26
use Koha::Checkouts;
26
use Koha::Checkouts;
27
use Koha::Old::Checkouts;
27
use Koha::Old::Checkouts;
28
use Koha::Token;
28
use Koha::Token;
Lines 420-423 sub allows_renewal { Link Here
420
    };
420
    };
421
}
421
}
422
422
423
=head3 checkin
424
425
Return a checkout (check in)
426
427
=cut
428
429
sub checkin {
430
    my $c = shift->openapi->valid_input or return;
431
432
    my $checkout_id = $c->param('checkout_id');
433
    my $checkout    = Koha::Checkouts->find($checkout_id);
434
435
    unless ($checkout) {
436
        return $c->render(
437
            status  => 400,
438
            openapi => { error => "Checkout doesn't exist" }
439
        );
440
    }
441
442
    my $item = $checkout->item;
443
444
    my $library_id = $c->param('library_id');
445
446
    return try {
447
        my ( $return_success, $return_messages, $old_checkout ) = AddReturn( $item->barcode, $library_id );
448
449
        $c->res->headers->location( $c->req->url->to_string );
450
451
        if ($return_success) {
452
            return $c->render(
453
                status  => 201,
454
                openapi => $old_checkout->to_api
455
            );
456
        } else {
457
            return $c->render(
458
                status  => 403,
459
                openapi => $return_messages
460
            );
461
        }
462
    } catch {
463
        $c->unhandled_exception($_);
464
    };
465
}
466
423
1;
467
1;
(-)a/api/v1/swagger/paths/checkouts.yaml (+36 lines)
Lines 411-413 Link Here
411
        description: Under maintenance
411
        description: Under maintenance
412
        schema:
412
        schema:
413
          $ref: "../swagger.yaml#/definitions/error"
413
          $ref: "../swagger.yaml#/definitions/error"
414
"/checkouts/{checkout_id}/checkin/{library_id}":
415
  post:
416
    x-mojo-to: Checkouts#checkin
417
    operationId: returnsCheckout
418
    tags:
419
      - checkouts
420
    summary: Return a checkout (check in)
421
    parameters:
422
      - $ref: "../swagger.yaml#/parameters/checkout_id_pp"
423
      - $ref: "../swagger.yaml#/parameters/library_id_pp"
424
    produces:
425
      - application/json
426
    responses:
427
      "201":
428
        description: Checkout returned (checked in)
429
        schema:
430
          $ref: "../swagger.yaml#/definitions/checkout"
431
      "400":
432
        description: Missing or wrong parameters
433
        schema:
434
          $ref: "../swagger.yaml#/definitions/error"
435
      "403":
436
        description: Cannot return checkout
437
        schema:
438
          $ref: "../swagger.yaml#/definitions/error"
439
      "404":
440
        description: Checkout not found
441
        schema:
442
          $ref: "../swagger.yaml#/definitions/error"
443
      "503":
444
        description: Under maintenance
445
        schema:
446
          $ref: "../swagger.yaml#/definitions/error"
447
    x-koha-authorization:
448
      permissions:
449
        circulate: circulate_remaining_permissions
(-)a/api/v1/swagger/swagger.yaml (-1 / +2 lines)
Lines 205-210 paths: Link Here
205
    $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
205
    $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
206
  "/checkouts/{checkout_id}/renewal":
206
  "/checkouts/{checkout_id}/renewal":
207
    $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
207
    $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
208
  "/checkouts/{checkout_id}/checkin/{library_id}":
209
    $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1checkin~1{library_id}"
208
  "/checkouts/availability":
210
  "/checkouts/availability":
209
    $ref: "./paths/checkouts.yaml#/~1checkouts~1availability"
211
    $ref: "./paths/checkouts.yaml#/~1checkouts~1availability"
210
  /circulation-rules/kinds:
212
  /circulation-rules/kinds:
211
- 

Return to bug 24401