|
Lines 30-35
use C4::Circulation qw( AddIssue AddReturn CanBookBeIssued );
Link Here
|
| 30 |
|
30 |
|
| 31 |
use Koha::Database; |
31 |
use Koha::Database; |
| 32 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
32 |
use Koha::DateUtils qw( dt_from_string output_pref ); |
|
|
33 |
use Koha::Token; |
| 33 |
|
34 |
|
| 34 |
my $schema = Koha::Database->schema; |
35 |
my $schema = Koha::Database->schema; |
| 35 |
my $builder = t::lib::TestBuilder->new; |
36 |
my $builder = t::lib::TestBuilder->new; |
|
Lines 237-243
$schema->storage->txn_rollback;
Link Here
|
| 237 |
|
238 |
|
| 238 |
subtest 'get_availability' => sub { |
239 |
subtest 'get_availability' => sub { |
| 239 |
|
240 |
|
| 240 |
plan tests => 27; |
241 |
plan tests => 28; |
| 241 |
|
242 |
|
| 242 |
$schema->storage->txn_begin; |
243 |
$schema->storage->txn_begin; |
| 243 |
my $librarian = $builder->build_object( |
244 |
my $librarian = $builder->build_object( |
|
Lines 294-300
subtest 'get_availability' => sub {
Link Here
|
| 294 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
295 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
| 295 |
)->status_is(200)->json_is( '/blockers' => {} ) |
296 |
)->status_is(200)->json_is( '/blockers' => {} ) |
| 296 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
297 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
| 297 |
->json_is( '/confirmation_token' => undef ); |
298 |
->json_has( '/confirmation_token'); |
| 298 |
|
299 |
|
| 299 |
# Blocked |
300 |
# Blocked |
| 300 |
%issuingimpossible = ( GNA => 1 ); |
301 |
%issuingimpossible = ( GNA => 1 ); |
|
Lines 302-308
subtest 'get_availability' => sub {
Link Here
|
| 302 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
303 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
| 303 |
)->status_is(200)->json_is( '/blockers' => { GNA => 1 } ) |
304 |
)->status_is(200)->json_is( '/blockers' => { GNA => 1 } ) |
| 304 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
305 |
->json_is( '/confirms' => {} )->json_is( '/warnings' => {} ) |
| 305 |
->json_is( '/confirmation_token' => undef ); |
306 |
->json_has( '/confirmation_token'); |
| 306 |
%issuingimpossible = (); |
307 |
%issuingimpossible = (); |
| 307 |
|
308 |
|
| 308 |
# Warnings/Info |
309 |
# Warnings/Info |
|
Lines 314-331
subtest 'get_availability' => sub {
Link Here
|
| 314 |
->json_is( '/confirms' => {} ) |
315 |
->json_is( '/confirms' => {} ) |
| 315 |
->json_is( '/warnings' => |
316 |
->json_is( '/warnings' => |
| 316 |
{ alert1 => "this is an alert", message1 => "this is a message" } ) |
317 |
{ alert1 => "this is an alert", message1 => "this is a message" } ) |
| 317 |
->json_is( '/confirmation_token' => undef ); |
318 |
->json_has( '/confirmation_token'); |
| 318 |
%alerts = (); |
319 |
%alerts = (); |
| 319 |
%messages = (); |
320 |
%messages = (); |
| 320 |
|
321 |
|
| 321 |
# Needs confirm |
322 |
# Needs confirm |
| 322 |
%needsconfirmation = ( confirm1 => 1, confirm2 => 'please' ); |
323 |
%needsconfirmation = ( confirm1 => 1, confirm2 => 'please' ); |
|
|
324 |
my $token = Koha::Token->new->generate_jwt( { id => $librarian->id . ":" . $item1_id . ":confirm1:confirm2:please" }); |
| 323 |
$t->get_ok( |
325 |
$t->get_ok( |
| 324 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
326 |
"//$userid:$password@/api/v1/checkouts/availability?item_id=$item1_id&patron_id=$patron_id" |
| 325 |
)->status_is(200)->json_is( '/blockers' => {} ) |
327 |
)->status_is(200)->json_is( '/blockers' => {} ) |
| 326 |
->json_is( '/confirms' => { confirm1 => 1, confirm2 => 'please' } ) |
328 |
->json_is( '/confirms' => { confirm1 => 1, confirm2 => 'please' } ) |
| 327 |
->json_is( '/warnings' => {} ) |
329 |
->json_is( '/warnings' => {} ) |
| 328 |
->json_is( '/confirmation_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb25maXJtMSI6MSwiY29uZmlybTIiOjF9.4QBpITwnIGOAfohyKjaFDoeBWnGmQTdyJrPn9pavArw' ); |
330 |
->json_has( '/confirmation_token'); |
|
|
331 |
my $confirmation_token = $t->tx->res->json('/confirmation_token'); |
| 332 |
ok( |
| 333 |
Koha::Token->new->check_jwt( |
| 334 |
{ |
| 335 |
id => $librarian->id . ":" |
| 336 |
. $item1_id |
| 337 |
. ":confirm1:confirm2:please", |
| 338 |
token => $confirmation_token |
| 339 |
} |
| 340 |
), |
| 341 |
'Correct token' |
| 342 |
); |
| 329 |
|
343 |
|
| 330 |
$schema->storage->txn_rollback; |
344 |
$schema->storage->txn_rollback; |
| 331 |
}; |
345 |
}; |
|
Lines 397-403
subtest 'add checkout' => sub {
Link Here
|
| 397 |
} |
411 |
} |
| 398 |
)->status_is(412); |
412 |
)->status_is(412); |
| 399 |
|
413 |
|
| 400 |
my $token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb25maXJtMSI6MSwiY29uZmlybTIiOjF9.4QBpITwnIGOAfohyKjaFDoeBWnGmQTdyJrPn9pavArw"; |
414 |
my $token = Koha::Token->new->generate_jwt( |
|
|
415 |
{ |
| 416 |
id => $librarian->id . ":" |
| 417 |
. $item1_id |
| 418 |
. ":confirm1:confirm2:please" |
| 419 |
} |
| 420 |
); |
| 401 |
$t->post_ok( |
421 |
$t->post_ok( |
| 402 |
"//$userid:$password@/api/v1/checkouts?confirmation=$token" => json => { |
422 |
"//$userid:$password@/api/v1/checkouts?confirmation=$token" => json => { |
| 403 |
item_id => $item1_id, |
423 |
item_id => $item1_id, |
| 404 |
- |
|
|