Bugzilla – Attachment 165391 Details for
Bug 26297
Add a route to list patron categories
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26297: API specs
Bug-26297-API-specs.patch (text/plain), 8.23 KB, created by
Tomás Cohen Arazi (tcohen)
on 2024-04-23 13:05:56 UTC
(
hide
)
Description:
Bug 26297: API specs
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2024-04-23 13:05:56 UTC
Size:
8.23 KB
patch
obsolete
>From 38ebe316c9af9bbdfd0f406ba67184539181bdd3 Mon Sep 17 00:00:00 2001 >From: Pedro Amorim <pedro.amorim@ptfs-europe.com> >Date: Mon, 11 Dec 2023 17:30:37 +0000 >Subject: [PATCH] Bug 26297: API specs > >Test plan, k-t-d: >1) Access /api/v1/patron_categories >2) Verify the patron categories are correctly listed > >Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> > >Bug 26297: (QA follow-up) Move to REST::V1::Patrons::Categories > >Bug 26297: (QA follow-up) Use search_with_library_limits > >JD amended-patch: squashed + tidy > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > Koha/REST/V1/Patrons/Categories.pm | 53 +++++++++ > .../swagger/definitions/patron_category.yaml | 106 ++++++++++++++++++ > api/v1/swagger/paths/patron_categories.yaml | 40 +++++++ > api/v1/swagger/swagger.yaml | 4 + > 4 files changed, 203 insertions(+) > create mode 100644 Koha/REST/V1/Patrons/Categories.pm > create mode 100644 api/v1/swagger/definitions/patron_category.yaml > create mode 100644 api/v1/swagger/paths/patron_categories.yaml > >diff --git a/Koha/REST/V1/Patrons/Categories.pm b/Koha/REST/V1/Patrons/Categories.pm >new file mode 100644 >index 00000000000..62eaf3fd0d0 >--- /dev/null >+++ b/Koha/REST/V1/Patrons/Categories.pm >@@ -0,0 +1,53 @@ >+package Koha::REST::V1::Patrons::Categories; >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Mojo::Base 'Mojolicious::Controller'; >+ >+use Try::Tiny qw( catch try ); >+ >+use Koha::Patron::Categories; >+ >+=head1 NAME >+ >+Koha::REST::V1::Patrons::Categories; >+ >+=head1 API >+ >+=head2 Methods >+ >+=head3 list >+ >+Controller function that handles listing Koha::Patron::Category objects >+ >+=cut >+ >+sub list { >+ my $c = shift->openapi->valid_input or return; >+ >+ return try { >+ return $c->render( >+ status => 200, >+ openapi => $c->objects->search( Koha::Patron::Categories->search_with_library_limits ), >+ ); >+ } catch { >+ $c->unhandled_exception($_); >+ }; >+} >+ >+1; >diff --git a/api/v1/swagger/definitions/patron_category.yaml b/api/v1/swagger/definitions/patron_category.yaml >new file mode 100644 >index 00000000000..8d6a361e166 >--- /dev/null >+++ b/api/v1/swagger/definitions/patron_category.yaml >@@ -0,0 +1,106 @@ >+--- >+type: object >+properties: >+ patron_category_id: >+ type: string >+ description: Internal patron category identifier >+ name: >+ type: >+ - string >+ - "null" >+ description: Name of the patron category >+ enrolment_period: >+ type: >+ - number >+ - "null" >+ description: Number of months the patron is enrolled for >+ enrolment_period_date: >+ type: >+ - string >+ - "null" >+ format: date >+ description: Date the patron is enrolled until >+ password_expiry_days: >+ type: >+ - number >+ - "null" >+ description: Number of days after which the patron must reset their password >+ description: Date the patron is enrolled until >+ upper_age_limit: >+ type: >+ - number >+ - "null" >+ description: Age limit for the patron >+ lower_age_limit: >+ type: >+ - number >+ - "null" >+ description: The minimum age required for the patron category >+ enrolment_fee: >+ type: >+ - number >+ - "null" >+ description: Enrollment fee for the patron >+ overdue_notice_required: >+ type: >+ - boolean >+ - "null" >+ description: Are overdue notices sent to this patron category (1 for yes, 0 for no) >+ reserve_fee: >+ type: >+ - number >+ - "null" >+ description: Cost to place holds >+ hide_lost_items: >+ type: boolean >+ description: Are lost items shown to this category (1 for yes, 0 for no) >+ category_type: >+ type: string >+ description: Type of Koha patron (Adult, Child, Professional, Organizational, Statistical, Staff) >+ block_expired_patron_opac_actions: >+ type: number >+ description: Whether or not a patron of this category can renew books or place holds once their card has expired. 0 means they can, 1 means they cannot, -1 means use syspref BlockExpiredPatronOpacActions >+ default_privacy: >+ type: string >+ enum: >+ - default >+ - never >+ - forever >+ description: Default privacy setting for this patron category >+ check_prev_checkout: >+ type: string >+ description: Produce a warning for this patron category if this item has previously been checked out to this patron if ''yes'', not if ''no'', defer to syspref setting if ''inherit''.' >+ can_place_ill_in_opac: >+ type: boolean >+ description: Can this patron category place interlibrary loan requests >+ can_be_guarantee: >+ type: boolean >+ description: If patrons of this category can be guarantees >+ reset_password: >+ type: >+ - boolean >+ - "null" >+ description: If patrons of this category can do the password reset flow >+ change_password: >+ type: >+ - boolean >+ - "null" >+ description: If patrons of this category can change their passwords in the OPAC >+ min_password_length: >+ type: >+ - number >+ - "null" >+ description: Set minimum password length for patrons in this category >+ require_strong_password: >+ type: >+ - boolean >+ - "null" >+ description: Set required password strength for patrons in this category >+ exclude_from_local_holds_priority: >+ type: >+ - boolean >+ - "null" >+ description: Exclude patrons of this category from local holds priority >+additionalProperties: false >+required: >+ - patron_category_id >diff --git a/api/v1/swagger/paths/patron_categories.yaml b/api/v1/swagger/paths/patron_categories.yaml >new file mode 100644 >index 00000000000..649c10f0f77 >--- /dev/null >+++ b/api/v1/swagger/paths/patron_categories.yaml >@@ -0,0 +1,40 @@ >+--- >+/patron_categories: >+ get: >+ x-mojo-to: Patrons::Categories#list >+ operationId: listPatronCategories >+ tags: >+ - patron_categories >+ summary: List patron categories >+ produces: >+ - application/json >+ parameters: [] >+ responses: >+ "200": >+ description: A list of patron categories >+ schema: >+ type: array >+ items: >+ $ref: "../swagger.yaml#/definitions/patron_category" >+ "401": >+ description: Authentication required >+ schema: >+ $ref: "../swagger.yaml#/definitions/error" >+ "403": >+ description: Access forbidden >+ 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: >+ parameters: manage_patron_categories >diff --git a/api/v1/swagger/swagger.yaml b/api/v1/swagger/swagger.yaml >index 9ea76782a1b..267ecfadc8e 100644 >--- a/api/v1/swagger/swagger.yaml >+++ b/api/v1/swagger/swagger.yaml >@@ -130,6 +130,8 @@ definitions: > $ref: ./definitions/patron_account_credit.yaml > patron_balance: > $ref: ./definitions/patron_balance.yaml >+ patron_category: >+ $ref: ./definitions/patron_category.yaml > patron_extended_attribute: > $ref: ./definitions/patron_extended_attribute.yaml > preservation_config: >@@ -441,6 +443,8 @@ paths: > $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date" > "/patrons/{patron_id}/recalls": > $ref: "./paths/patrons_recalls.yaml#/~1patrons~1{patron_id}~1recalls" >+ /patron_categories: >+ $ref: ./paths/patron_categories.yaml#/~1patron_categories > /preservation/config: > $ref: ./paths/preservation_config.yaml#/~1preservation~1config > /preservation/trains: >-- >2.44.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26297
:
159714
|
159715
|
159716
|
159717
|
159722
|
159921
|
159922
|
159923
|
159924
|
159955
|
160412
|
161450
|
161451
|
161484
|
161485
|
161486
|
161487
|
161488
|
161496
|
165390
| 165391 |
165392
|
165393
|
165453
|
165655
|
165827