Bug 13895: (follow-up) Fix POST response
authorJosef Moravec <josef.moravec@gmail.com>
Mon, 25 Feb 2019 22:17:01 +0000 (22:17 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 28 Mar 2019 19:38:41 +0000 (19:38 +0000)
Test plan:
prove t/db_dependent/api/v1/chcekouts.t

Signed-off-by: Michal Denar <black23@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Koha/REST/V1/Checkout.pm
api/v1/swagger/paths/checkouts.json
t/db_dependent/api/v1/checkouts.t

index a454fc4..3dba36c 100644 (file)
@@ -118,8 +118,9 @@ sub renew {
     AddRenewal($borrowernumber, $itemnumber, $checkout->branchcode);
     $checkout = Koha::Checkouts->find($checkout_id);
 
+    $c->res->headers->location( $c->req->url->to_string );
     return $c->render(
-        status => 200,
+        status => 201,
         openapi => _to_api( $checkout->TO_JSON )
     );
 }
index 6324d75..134aee5 100644 (file)
@@ -73,7 +73,7 @@
       }],
       "produces": ["application/json"],
       "responses": {
-        "200": {
+        "201": {
           "description": "Updated borrower's checkout",
           "schema": { "$ref": "../definitions.json#/checkout" }
         },
index a6f340b..b3c31cc 100644 (file)
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 51;
+use Test::More tests => 53;
 use Test::MockModule;
 use Test::Mojo;
 use t::lib::Mocks;
@@ -137,8 +137,9 @@ $dbh->do(q{
 
 my $expected_datedue = DateTime->now->add(days => 14)->set(hour => 23, minute => 59, second => 0);
 $t->post_ok ( "//$userid:$password@/api/v1/checkouts/" . $issue1->issue_id . "/renewal" )
-  ->status_is(200)
-  ->json_is('/due_date' => output_pref( { dateformat => "rfc3339", dt => $expected_datedue }) );
+  ->status_is(201)
+  ->json_is('/due_date' => output_pref( { dateformat => "rfc3339", dt => $expected_datedue }) )
+  ->header_is(Location => "/api/v1/checkouts/" . $issue1->issue_id . "/renewal");
 
 $t->post_ok( "//$unauth_userid:$unauth_password@/api/v1/checkouts/" . $issue3->issue_id . "/renewal" )
   ->status_is(403)
@@ -147,8 +148,10 @@ $t->post_ok( "//$unauth_userid:$unauth_password@/api/v1/checkouts/" . $issue3->i
             });
 
 $t->post_ok( "//$userid:$password@/api/v1/checkouts/" . $issue2->issue_id . "/renewal" )
-  ->status_is(200)
-  ->json_is('/due_date' => output_pref({ dateformat => "rfc3339", dt => $expected_datedue}) );
+  ->status_is(201)
+  ->json_is('/due_date' => output_pref({ dateformat => "rfc3339", dt => $expected_datedue}) )
+  ->header_is(Location => "/api/v1/checkouts/" . $issue2->issue_id . "/renewal");
+
 
 $t->post_ok( "//$userid:$password@/api/v1/checkouts/" . $issue1->issue_id . "/renewal" )
   ->status_is(403)