Bug 13895: Change renewal endpoint
authorJosef Moravec <josef.moravec@gmail.com>
Thu, 21 Feb 2019 00:26:17 +0000 (00:26 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 28 Mar 2019 19:38:41 +0000 (19:38 +0000)
Instead of PUT on /checkout/{checkout_id} endpoint, you should now call
POST on /checkouts/{checkout_id}/renewal

Test plan:
prove t/db_dependent/api/v1/checkouts.t

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

api/v1/swagger/paths.json
api/v1/swagger/paths/checkouts.json
t/db_dependent/api/v1/checkouts.t

index 0250e68..d0c2733 100644 (file)
@@ -17,6 +17,9 @@
   "/checkouts/{checkout_id}": {
     "$ref": "paths/checkouts.json#/~1checkouts~1{checkout_id}"
   },
+  "/checkouts/{checkout_id}/renewal": {
+    "$ref": "paths/checkouts.json#/~1checkouts~1{checkout_id}~1renewal"
+  },
   "/cities": {
     "$ref": "paths/cities.json#/~1cities"
   },
index 54aadd9..6324d75 100644 (file)
           "circulate": "circulate_remaining_permissions"
         }
       }
-    },
-    "put": {
+    }
+  },
+  "/checkouts/{checkout_id}/renewal": {
+    "post": {
       "x-mojo-to": "Checkout#renew",
       "operationId": "renewCheckout",
       "tags": ["patrons", "checkouts"],
index a5b9c54..a6f340b 100644 (file)
@@ -136,21 +136,21 @@ $dbh->do(q{
 }, {}, '*', '*', '*', 7, 1);
 
 my $expected_datedue = DateTime->now->add(days => 14)->set(hour => 23, minute => 59, second => 0);
-$t->put_ok ( "//$userid:$password@/api/v1/checkouts/" . $issue1->issue_id)
+$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 }) );
 
-$t->put_ok( "//$unauth_userid:$unauth_password@/api/v1/checkouts/" . $issue3->issue_id)
+$t->post_ok( "//$unauth_userid:$unauth_password@/api/v1/checkouts/" . $issue3->issue_id . "/renewal" )
   ->status_is(403)
   ->json_is({ error => "Authorization failure. Missing required permission(s).",
               required_permissions => { circulate => "circulate_remaining_permissions" }
             });
 
-$t->put_ok( "//$userid:$password@/api/v1/checkouts/" . $issue2->issue_id)
+$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}) );
 
-$t->put_ok( "//$userid:$password@/api/v1/checkouts/" . $issue1->issue_id)
+$t->post_ok( "//$userid:$password@/api/v1/checkouts/" . $issue1->issue_id . "/renewal" )
   ->status_is(403)
   ->json_is({ error => 'Renewal not authorized (too_many)' });