}
sub renewability {
- my ($c, $args, $cb) = @_;
-
- my $user = $c->stash('koha.user');
-
- my $OpacRenewalAllowed;
- if ($user->borrowernumber == $borrowernumber) {
- $OpacRenewalAllowed = C4::Context->preference('OpacRenewalAllowed');
- }
-
- unless ($user && ($OpacRenewalAllowed
- || haspermission($user->userid, { circulate => "circulate_remaining_permissions" }))) {
- return $c->$cb({error => "You don't have the required permission"}, 403);
- }
+ my $c = shift->openapi->valid_input or return;
- my $checkout_id = $args->{checkout_id};
- my $checkout = Koha::Issues->find($checkout_id);
+ my $checkout_id = $c->validation->param('checkout_id');
+ my $checkout = Koha::Checkouts->find( $checkout_id );
- if (!$checkout) {
- return $c->$cb({
- error => "Checkout doesn't exist"
- }, 404);
+ unless ($checkout) {
+ return $c->render(
+ status => 404,
+ openapi => { error => "Checkout doesn't exist" }
+ );
}
- my $borrowernumber = $checkout->borrowernumber;
- my $itemnumber = $checkout->itemnumber;
-
my ($can_renew, $error) = C4::Circulation::CanBookBeRenewed(
- $borrowernumber, $itemnumber);
+ $checkout->borrowernumber, $checkout->itemnumber);
- return $c->$cb({ renewable => Mojo::JSON->true, error => undef }, 200) if $can_renew;
- return $c->$cb({ renewable => Mojo::JSON->false, error => $error }, 200);
+ my $renewable = Mojo::JSON->false;
+ $renewable = Mojo::JSON->true if $can_renew;
+ return $c->render(
+ status => 200,
+ openapi => { renewable => $renewable, error => $error }
+ );
}
=head3 _to_api
},
"/checkouts/{checkout_id}/renewability": {
"get": {
+ "x-mojo-to": "Checkout#renewability",
"operationId": "renewabilityCheckout",
"tags": ["patrons", "checkouts"],
"parameters": [{
}
},
"x-koha-authorization": {
- "allow-owner": true,
- "allow-guarantor": true,
"permissions": {
"circulate": "circulate_remaining_permissions"
}
required_permissions => { circulate => "circulate_remaining_permissions" }
});
-$tx = $t->ua->build_tx(GET => "/api/v1/checkouts/" . $issue2->issue_id . "/renewability");
-$tx->req->cookies({name => 'CGISESSID', value => $patron_session->id});
-$t->request_ok($tx)
+$t->get_ok( "//$userid:$password@/api/v1/checkouts/" . $issue2->issue_id . "/renewability")
->status_is(200)
->json_is({ renewable => Mojo::JSON->true, error => undef });
->status_is(403)
->json_is({ error => 'Renewal not authorized (too_many)' });
-$tx = $t->ua->build_tx(GET => "/api/v1/checkouts/" . $issue2->issue_id . "/renewability");
-$tx->req->cookies({name => 'CGISESSID', value => $patron_session->id});
-$t->request_ok($tx)
+$t->get_ok( "//$userid:$password@/api/v1/checkouts/" . $issue2->issue_id . "/renewability")
->status_is(200)
->json_is({ renewable => Mojo::JSON->false, error => 'too_many' });