Bugzilla – Attachment 167946 Details for
Bug 36641
Add an endpoint to list circulation rules
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 36641: Add endpoint for fetching circulation rules
Bug-36641-Add-endpoint-for-fetching-circulation-ru.patch (text/plain), 4.34 KB, created by
Martin Renvoize (ashimema)
on 2024-06-21 11:24:45 UTC
(
hide
)
Description:
Bug 36641: Add endpoint for fetching circulation rules
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2024-06-21 11:24:45 UTC
Size:
4.34 KB
patch
obsolete
>From e6715471214c02fe5d07f646ce8c362818a8471c Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Thu, 18 Apr 2024 13:45:55 +0100 >Subject: [PATCH] Bug 36641: Add endpoint for fetching circulation rules > >This patch is a proof of concept for an API endpoint that returns a list >of circulation rules for the specified itemtype, branchcode and patron >category combination. You can also add a list of `rules` as a query >parameter to limit the response to only the rules you are interested in >for this combination. >--- > Koha/REST/V1/CirculationRules.pm | 30 +++++++++++ > api/v1/swagger/paths/circulation-rules.yaml | 55 +++++++++++++++++++++ > api/v1/swagger/swagger.yaml | 2 + > 3 files changed, 87 insertions(+) > >diff --git a/Koha/REST/V1/CirculationRules.pm b/Koha/REST/V1/CirculationRules.pm >index 636985fba64..f692181c0ac 100644 >--- a/Koha/REST/V1/CirculationRules.pm >+++ b/Koha/REST/V1/CirculationRules.pm >@@ -41,4 +41,34 @@ sub get_kinds { > ); > } > >+ >+=head3 list_effective_rules >+ >+List all effective rules for the requested patron/item/branch combination >+ >+=cut >+ >+sub list_effective_rules { >+ my $c = shift->openapi->valid_input or return; >+ >+ my $item_type = $c->param('itemtype'); >+ my $library = $c->param('library'); >+ my $patron_category = $c->param('category'); >+ my $rules = $c->param('rules') // [ keys %{Koha::CirculationRules->rule_kinds} ]; >+ >+ my $effective_rules = Koha::CirculationRules->get_effective_rules( >+ { >+ categorycode => $patron_category, >+ itemtype => $item_type, >+ branchcode => $library, >+ rules => $rules >+ } >+ ); >+ >+ return $c->render( >+ status => 200, >+ openapi => $effective_rules >+ ); >+} >+ > 1; >diff --git a/api/v1/swagger/paths/circulation-rules.yaml b/api/v1/swagger/paths/circulation-rules.yaml >index 545f15458a9..742227932d6 100644 >--- a/api/v1/swagger/paths/circulation-rules.yaml >+++ b/api/v1/swagger/paths/circulation-rules.yaml >@@ -30,3 +30,58 @@ > description: Under maintenance > schema: > $ref: "../swagger.yaml#/definitions/error" >+/circulation-rules/{itemtype}/{library}/{category}: >+ get: >+ x-mojo-to: CirculationRules#list_effective_rules >+ operationId: listCirculationRules >+ tags: >+ - circulation_rules >+ summary: Get circulation rules for this item/library/patron combination >+ produces: >+ - application/json >+ parameters: >+ - name: itemtype >+ in: path >+ description: The itemtype >+ required: true >+ type: string >+ - name: library >+ in: path >+ description: The library code >+ required: true >+ type: string >+ - name: category >+ in: path >+ description: The patron category >+ required: true >+ type: string >+ - name: rules >+ in: query >+ description: A comma-separated list of rule kinds >+ type: array >+ items: >+ type: string >+ collectionFormat: csv >+ responses: >+ "200": >+ description: A list of rules for this itemtype, library and patron category combination >+ schema: >+ type: object >+ "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: >+ - circulate: circulate_remaining_permissions >diff --git a/api/v1/swagger/swagger.yaml b/api/v1/swagger/swagger.yaml >index 7352b1c2401..812287bfb63 100644 >--- a/api/v1/swagger/swagger.yaml >+++ b/api/v1/swagger/swagger.yaml >@@ -281,6 +281,8 @@ paths: > $ref: "./paths/checkouts.yaml#/~1checkouts~1availability" > /circulation-rules/kinds: > $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds >+ /circulation-rules/{itemtype}/{library}/{category}: >+ $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1{itemtype}~1{library}~1{category} > /cities: > $ref: ./paths/cities.yaml#/~1cities > "/cities/{city_id}": >-- >2.45.2
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 36641
:
165086
|
167937
|
167938
|
167946
|
167947
|
168018
|
168019
|
168020
|
168023
|
168024
|
168025
|
168365
|
168366
|
168367
|
168368
|
168369
|
168370
|
168378
|
168379
|
168395
|
168396
|
168397
|
168398
|
168399
|
168400
|
168401
|
168841
|
168874
|
168875
|
168876
|
168877
|
168878
|
168879
|
168880
|
168881
|
168882
|
168883
|
168884
|
168905
|
168906
|
168907
|
168908
|
168909
|
168910
|
168911
|
168912
|
168913
|
168914
|
168915
|
168916
|
168926
|
168927
|
168928
|
168929
|
168930
|
168931
|
168932
|
168933
|
168934
|
168935
|
168936
|
168937
|
168938
|
168940
|
169013
|
169014
|
169015
|
169016
|
169017
|
169018
|
169019
|
169020
|
169021
|
169022
|
169023
|
169024
|
169025
|
169026