@@ -, +, @@ so reorganizing things and also renaming the route. should use the PUT verb (as in overwrite). --- api/v1/swagger/paths/patrons_password.yaml | 56 ++++++++++++++++++ .../paths/patrons_password_expiration.yaml | 57 ------------------- api/v1/swagger/swagger.yaml | 4 +- .../api/v1/patrons_password_expiration.t | 16 +++--- 4 files changed, 66 insertions(+), 67 deletions(-) delete mode 100644 api/v1/swagger/paths/patrons_password_expiration.yaml --- a/api/v1/swagger/paths/patrons_password.yaml +++ a/api/v1/swagger/paths/patrons_password.yaml @@ -59,3 +59,59 @@ x-koha-authorization: permissions: borrowers: "1" +"/patrons/{patron_id}/password/expiration_date": + put: + x-mojo-to: Patrons::Password::Expiration#set + operationId: setPatronPasswordExpiration + tags: + - patrons + summary: Set password expiration for a patron + parameters: + - $ref: ../swagger.yaml#/parameters/patron_id_pp + - name: body + in: body + description: A JSON object containing password expiration date + schema: + type: object + properties: + expiration_date: + description: Date to expire password + type: string + required: + - expiration_date + additionalProperties: false + produces: + - application/json + responses: + "200": + description: Password expiration changed + "400": + description: Bad request + schema: + $ref: ../swagger.yaml#/definitions/error + "401": + description: Authentication required + schema: + $ref: ../swagger.yaml#/definitions/error + "403": + description: Access forbidden + schema: + $ref: ../swagger.yaml#/definitions/error + "404": + description: Patron not found + schema: + $ref: ../swagger.yaml#/definitions/error + "500": + description: | + Internal server error. Possible `error_code` attribute values: + + * `internal_server_error` + schema: + $ref: ../swagger.yaml#/definitions/error + "503": + description: Under maintenance + schema: + $ref: ../swagger.yaml#/definitions/error + x-koha-authorization: + permissions: + superlibrarian: "1" --- a/api/v1/swagger/paths/patrons_password_expiration.yaml +++ a/api/v1/swagger/paths/patrons_password_expiration.yaml @@ -1,57 +0,0 @@ ---- -"/patrons/{patron_id}/password/expiration": - post: - x-mojo-to: Patrons::Password::Expiration#set - operationId: setPatronPasswordExpiration - tags: - - patrons - summary: Set password expiration for a patron - parameters: - - $ref: ../parameters.yaml#/patron_id_pp - - name: body - in: body - description: A JSON object containing password expiration date - schema: - type: object - properties: - expiration_date: - description: Date to expire password - type: string - required: - - expiration_date - additionalProperties: false - produces: - - application/json - responses: - "200": - description: Password expiration changed - "400": - description: Bad request - schema: - $ref: ../definitions.yaml#/error - "401": - description: Authentication required - schema: - $ref: ../definitions.yaml#/error - "403": - description: Access forbidden - schema: - $ref: ../definitions.yaml#/error - "404": - description: Patron not found - schema: - $ref: ../definitions.yaml#/error - "500": - description: | - Internal server error. Possible `error_code` attribute values: - - * `internal_server_error` - schema: - $ref: ../definitions.yaml#/error - "503": - description: Under maintenance - schema: - $ref: ../definitions.yaml#/error - x-koha-authorization: - permissions: - superlibrarian: "1" --- a/api/v1/swagger/swagger.yaml +++ a/api/v1/swagger/swagger.yaml @@ -173,8 +173,8 @@ paths: $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds" "/patrons/{patron_id}/password": $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password" - "/patrons/{patron_id}/password/expiration": - $ref: "./paths/patrons_password_expiration.yaml#/~1patrons~1{patron_id}~1password~1expiration" + "/patrons/{patron_id}/password/expiration_date": + $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date" "/public/biblios/{biblio_id}": $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}" "/public/biblios/{biblio_id}/items": --- a/t/db_dependent/api/v1/patrons_password_expiration.t +++ a/t/db_dependent/api/v1/patrons_password_expiration.t @@ -56,21 +56,21 @@ subtest 'basic tests' => sub { my $new_password = 'abc'; - $t->post_ok( "//$userid:$password@/api/v1/patrons/" + $t->put_ok( "//$userid:$password@/api/v1/patrons/" . $patron->id - . "/password/expiration" => json => + . "/password/expiration_date" => json => { expiration_date => '2021-01-01' } ) ->status_is(200)->json_is(''); - $t->post_ok( "//$userid:$password@/api/v1/patrons/" + $t->put_ok( "//$userid:$password@/api/v1/patrons/" . $patron->id - . "/password/expiration" => json => + . "/password/expiration_date" => json => { expiration_date => '01/13/2021' } ) ->status_is(200)->json_is(''); - $t->post_ok( "//$userid:$password@/api/v1/patrons/" + $t->put_ok( "//$userid:$password@/api/v1/patrons/" . $patron->id - . "/password/expiration" => json => + . "/password/expiration_date" => json => { expiration_date => '13/01/2021' } ) ->status_is(500)->json_is({ error => 'Something went wrong, check Koha logs for details.', @@ -79,9 +79,9 @@ subtest 'basic tests' => sub { $privileged_patron->flags(0)->store(); - $t->post_ok( "//$userid:$password@/api/v1/patrons/" + $t->put_ok( "//$userid:$password@/api/v1/patrons/" . $patron->id - . "/password/expiration" => json => + . "/password/expiration_date" => json => { expiration_date => '2021-01-01' } ) ->status_is(403)->json_is({ error => "Authorization failure. Missing required permission(s).", --