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

(-)a/Koha/REST/V1/Reserve.pm (-1 / +3 lines)
Lines 49-54 sub add { Link Here
49
    my $itemnumber = $body->{itemnumber};
49
    my $itemnumber = $body->{itemnumber};
50
    my $branchcode = $body->{branchcode};
50
    my $branchcode = $body->{branchcode};
51
    my $expirationdate = $body->{expirationdate};
51
    my $expirationdate = $body->{expirationdate};
52
    my $itemtype = $body->{itemtype};
53
52
    my $borrower = Koha::Patrons->find($borrowernumber);
54
    my $borrower = Koha::Patrons->find($borrowernumber);
53
    unless ($borrower) {
55
    unless ($borrower) {
54
        return $c->$cb({error => "Borrower not found"}, 404);
56
        return $c->$cb({error => "Borrower not found"}, 404);
Lines 98-104 sub add { Link Here
98
100
99
    my $reserve_id = C4::Reserves::AddReserve($branchcode, $borrowernumber,
101
    my $reserve_id = C4::Reserves::AddReserve($branchcode, $borrowernumber,
100
        $biblionumber, undef, $priority, undef, $expirationdate, undef,
102
        $biblionumber, undef, $priority, undef, $expirationdate, undef,
101
        $biblio->{title}, $itemnumber);
103
        $biblio->{title}, $itemnumber, undef, $itemtype);
102
104
103
    unless ($reserve_id) {
105
    unless ($reserve_id) {
104
        return $c->$cb({
106
        return $c->$cb({
(-)a/api/v1/swagger.json (+4 lines)
Lines 131-136 Link Here
131
                  "description": "Reserve end date",
131
                  "description": "Reserve end date",
132
                  "type": "string",
132
                  "type": "string",
133
                  "format": "date"
133
                  "format": "date"
134
                },
135
                "itemtype": {
136
                  "description": "Limit reserve on one itemtype (ignored for item-level holds)",
137
                  "type": "string"
134
                }
138
                }
135
              }
139
              }
136
            }
140
            }
(-)a/t/db_dependent/api/v1/reserves.t (-8 / +30 lines)
Lines 17-24 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 30;
20
use Test::More tests => 39;
21
use Test::Mojo;
21
use Test::Mojo;
22
use t::lib::TestBuilder;
22
23
23
use DateTime;
24
use DateTime;
24
25
Lines 38-43 my $t = Test::Mojo->new('Koha::REST::V1'); Link Here
38
39
39
my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode();
40
my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode();
40
my $branchcode = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode();
41
my $branchcode = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode();
42
my $builder = t::lib::TestBuilder->new();
43
my $itemtype = $builder->build({ source => 'Itemtype' })->{ itemtype };
41
44
42
my $borrower = Koha::Patron->new;
45
my $borrower = Koha::Patron->new;
43
$borrower->categorycode( $categorycode );
46
$borrower->categorycode( $categorycode );
Lines 54-60 $borrower2->store; Link Here
54
my $borrowernumber2 = $borrower2->borrowernumber;
57
my $borrowernumber2 = $borrower2->borrowernumber;
55
58
56
my $biblionumber = create_biblio('RESTful Web APIs');
59
my $biblionumber = create_biblio('RESTful Web APIs');
57
my $itemnumber = create_item($biblionumber, 'TEST000001');
60
my $itemnumber = create_item($biblionumber, {
61
    barcode => 'TEST000001',
62
    itype => $itemtype
63
});
58
64
59
my $reserve_id = C4::Reserves::AddReserve($branchcode, $borrowernumber,
65
my $reserve_id = C4::Reserves::AddReserve($branchcode, $borrowernumber,
60
    $biblionumber, undef, 1, undef, undef, undef, '', $itemnumber);
66
    $biblionumber, undef, 1, undef, undef, undef, '', $itemnumber);
Lines 126-131 $t->post_ok("/api/v1/reserves" => json => $post_data) Link Here
126
  ->json_like('/error', qr/tooManyReserves/);
132
  ->json_like('/error', qr/tooManyReserves/);
127
133
128
134
135
$t->delete_ok("/api/v1/reserves/$reserve_id")
136
  ->status_is(200);
137
138
$post_data = {
139
    borrowernumber => int($borrowernumber),
140
    biblionumber => int($biblionumber),
141
    branchcode => $branchcode,
142
    itemtype => $itemtype,
143
};
144
145
$t->post_ok("/api/v1/reserves" => json => $post_data)
146
  ->status_is(201)
147
  ->json_has('/reserve_id');
148
149
$reserve_id = $t->tx->res->json->{reserve_id};
150
151
$t->get_ok("/api/v1/reserves?borrowernumber=$borrowernumber")
152
  ->status_is(200)
153
  ->json_is('/0/reserve_id', $reserve_id)
154
  ->json_is('/0/itemtype', $itemtype);
155
129
$dbh->rollback;
156
$dbh->rollback;
130
157
131
sub create_biblio {
158
sub create_biblio {
Lines 142-152 sub create_biblio { Link Here
142
}
169
}
143
170
144
sub create_item {
171
sub create_item {
145
    my ($biblionumber, $barcode) = @_;
172
    my ($biblionumber, $item) = @_;
146
147
    my $item = {
148
        barcode => $barcode,
149
    };
150
173
151
    my $itemnumber = C4::Items::AddItem($item, $biblionumber);
174
    my $itemnumber = C4::Items::AddItem($item, $biblionumber);
152
175
153
- 

Return to bug 16213