Bug 22206: (follow-up) Voted RFC changes
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 28 Feb 2019 13:00:27 +0000 (10:00 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 15 Mar 2019 19:35:30 +0000 (19:35 +0000)
This patch changes expiration_date for end_date as voted when the RFC
was approved.

It also adds a test for the Location header being added correctly when
suspending a hold (SWAGGER3.4.1)

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

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

Koha/REST/V1/Holds.pm
api/v1/swagger/paths/holds.json
t/db_dependent/api/v1/holds.t

index 190a57e..58ddf1f 100644 (file)
@@ -284,21 +284,21 @@ sub suspend {
     my $hold_id  = $c->validation->param('hold_id');
     my $hold     = Koha::Holds->find($hold_id);
     my $body     = $c->req->json;
-    my $exp_date = ($body) ? $body->{expiration_date} : undef;
+    my $end_date = ($body) ? $body->{end_date} : undef;
 
     unless ($hold) {
         return $c->render( status => 404, openapi => { error => 'Hold not found.' } );
     }
 
     return try {
-        my $date = ($exp_date) ? dt_from_string( $exp_date, 'rfc3339' ) : undef;
+        my $date = ($end_date) ? dt_from_string( $end_date, 'rfc3339' ) : undef;
         $hold->suspend_hold($date);
         $hold->discard_changes;
         $c->res->headers->location( $c->req->url->to_string );
         return $c->render(
             status  => 201,
             openapi => {
-                expiration_date => output_pref(
+                end_date => output_pref(
                     {   dt         => dt_from_string( $hold->suspend_until ),
                         dateformat => 'rfc3339',
                         dateonly   => 1
index 2dea98c..68e03da 100644 (file)
           "schema": {
             "type": "object",
             "properties": {
-              "expiration_date": {
+              "end_date": {
                 "description": "Date the hold suspension expires",
                 "type": "string",
                 "format": "date"
index 31a1430..1374a7b 100644 (file)
@@ -330,7 +330,7 @@ $schema->storage->txn_rollback;
 
 subtest 'suspend and resume tests' => sub {
 
-    plan tests => 20;
+    plan tests => 21;
 
     $schema->storage->txn_begin;
 
@@ -359,7 +359,7 @@ subtest 'suspend and resume tests' => sub {
 
     ok( $hold->is_suspended, 'Hold is suspended' );
     $t->json_is(
-        '/expiration_date',
+        '/end_date',
         output_pref(
             {   dt         => dt_from_string( $hold->suspend_until ),
                 dateformat => 'rfc3339',
@@ -378,12 +378,13 @@ subtest 'suspend and resume tests' => sub {
               "//$userid:$password@/api/v1/holds/"
             . $hold->id
             . "/suspension" => json => {
-            expiration_date =>
+            end_date =>
                 output_pref( { dt => $date, dateformat => 'rfc3339', dateonly => 1 } )
             }
     )->status_is( 201, 'Hold suspension created' )
-        ->json_is( '/expiration_date',
-        output_pref( { dt => $date, dateformat => 'rfc3339', dateonly => 1 } ) );
+        ->json_is( '/end_date',
+        output_pref( { dt => $date, dateformat => 'rfc3339', dateonly => 1 } ) )
+        ->header_is( Location => "/api/v1/holds/" . $hold->id . "/suspension", 'The Location header is set' );
 
     $t->delete_ok( "//$userid:$password@/api/v1/holds/" . $hold->id . "/suspension" )
       ->status_is( 204, "Correct status when deleting a resource" )