Lines 27-39
use DateTime;
Link Here
|
27 |
use MARC::Record; |
27 |
use MARC::Record; |
28 |
|
28 |
|
29 |
use C4::Context; |
29 |
use C4::Context; |
30 |
use C4::Biblio; |
|
|
31 |
use C4::Circulation; |
30 |
use C4::Circulation; |
32 |
use C4::Items; |
|
|
33 |
|
31 |
|
34 |
use Koha::Database; |
32 |
use Koha::Database; |
35 |
use Koha::DateUtils; |
33 |
use Koha::DateUtils; |
36 |
use Koha::Patron; |
|
|
37 |
|
34 |
|
38 |
my $schema = Koha::Database->schema; |
35 |
my $schema = Koha::Database->schema; |
39 |
my $builder = t::lib::TestBuilder->new; |
36 |
my $builder = t::lib::TestBuilder->new; |
Lines 91-100
$t->request_ok($tx)
Link Here
|
91 |
->status_is(200) |
88 |
->status_is(200) |
92 |
->json_is([]); |
89 |
->json_is([]); |
93 |
|
90 |
|
94 |
my $biblionumber = create_biblio('RESTful Web APIs'); |
91 |
my $biblionumber = $builder->build_sample_biblio({ title => 'RESTful Web APIs'})->biblionumber; |
95 |
my $itemnumber1 = create_item($biblionumber, 'TEST000001'); |
92 |
my $itemnumber1 = $builder->build_sample_item({ biblionumber => $biblionumber, barcode => 'TEST000001'})->itemnumber; |
96 |
my $itemnumber2 = create_item($biblionumber, 'TEST000002'); |
93 |
my $itemnumber2 = $builder->build_sample_item({ biblionumber => $biblionumber, barcode => 'TEST000002'})->itemnumber; |
97 |
my $itemnumber3 = create_item($biblionumber, 'TEST000003'); |
94 |
my $itemnumber3 = $builder->build_sample_item({ biblionumber => $biblionumber, barcode => 'TEST000003'})->itemnumber; |
98 |
|
95 |
|
99 |
my $date_due = DateTime->now->add(weeks => 2); |
96 |
my $date_due = DateTime->now->add(weeks => 2); |
100 |
my $issue1 = C4::Circulation::AddIssue($patron, 'TEST000001', $date_due); |
97 |
my $issue1 = C4::Circulation::AddIssue($patron, 'TEST000001', $date_due); |
Lines 122-136
$t->request_ok($tx)
Link Here
|
122 |
->status_is(403) |
119 |
->status_is(403) |
123 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
120 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
124 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
121 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
125 |
}); |
122 |
}); |
126 |
|
123 |
|
127 |
$tx = $t->ua->build_tx(GET => "/api/v1/checkouts?patron_id=".$loggedinuser->{borrowernumber}); |
124 |
$tx = $t->ua->build_tx(GET => "/api/v1/checkouts?patron_id=".$loggedinuser->{borrowernumber}); |
128 |
$tx->req->cookies({name => 'CGISESSID', value => $patron_session->id}); |
125 |
$tx->req->cookies({name => 'CGISESSID', value => $patron_session->id}); |
129 |
$t->request_ok($tx) |
126 |
$t->request_ok($tx) |
130 |
->status_is(403) |
127 |
->status_is(403) |
131 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
128 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
132 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
129 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
133 |
}); |
130 |
}); |
134 |
|
131 |
|
135 |
$tx = $t->ua->build_tx(GET => "/api/v1/checkouts?patron_id=$borrowernumber"); |
132 |
$tx = $t->ua->build_tx(GET => "/api/v1/checkouts?patron_id=$borrowernumber"); |
136 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
133 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
Lines 185-191
$t->request_ok($tx)
Link Here
|
185 |
->status_is(403) |
182 |
->status_is(403) |
186 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
183 |
->json_is({ error => "Authorization failure. Missing required permission(s).", |
187 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
184 |
required_permissions => { circulate => "circulate_remaining_permissions" } |
188 |
}); |
185 |
}); |
189 |
|
186 |
|
190 |
$tx = $t->ua->build_tx(PUT => "/api/v1/checkouts/" . $issue2->issue_id); |
187 |
$tx = $t->ua->build_tx(PUT => "/api/v1/checkouts/" . $issue2->issue_id); |
191 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
188 |
$tx->req->cookies({name => 'CGISESSID', value => $session->id}); |
Lines 199-225
$t->request_ok($tx)
Link Here
|
199 |
->status_is(403) |
196 |
->status_is(403) |
200 |
->json_is({ error => 'Renewal not authorized (too_many)' }); |
197 |
->json_is({ error => 'Renewal not authorized (too_many)' }); |
201 |
|
198 |
|
202 |
sub create_biblio { |
|
|
203 |
my ($title) = @_; |
204 |
|
205 |
my $record = new MARC::Record; |
206 |
$record->append_fields( |
207 |
new MARC::Field('200', ' ', ' ', a => $title), |
208 |
); |
209 |
|
210 |
my ($biblionumber) = C4::Biblio::AddBiblio($record, ''); |
211 |
|
212 |
return $biblionumber; |
213 |
} |
214 |
|
215 |
sub create_item { |
216 |
my ($biblionumber, $barcode) = @_; |
217 |
|
218 |
my $item = { |
219 |
barcode => $barcode, |
220 |
}; |
221 |
|
222 |
my $itemnumber = C4::Items::AddItem($item, $biblionumber); |
223 |
|
224 |
return $itemnumber; |
225 |
} |
226 |
- |