Bugzilla – Attachment 133918 Details for
Bug 30275
Checkout renewals should be stored in their own table
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30275: Add `/api/v1/checkouts/{checkout_id}/renewals`
Bug-30275-Add-apiv1checkoutscheckoutidrenewals.patch (text/plain), 4.78 KB, created by
Martin Renvoize (ashimema)
on 2022-04-26 14:42:39 UTC
(
hide
)
Description:
Bug 30275: Add `/api/v1/checkouts/{checkout_id}/renewals`
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2022-04-26 14:42:39 UTC
Size:
4.78 KB
patch
obsolete
>From 8df651e0e8cded8bb43fafd52bd2e463a01df13c Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Fri, 11 Mar 2022 14:05:25 +0000 >Subject: [PATCH] Bug 30275: Add `/api/v1/checkouts/{checkout_id}/renewals` > >--- > Koha/REST/V1/Checkouts.pm | 36 +++++++++++++++++++++ > api/v1/swagger/definitions/renewal.yaml | 33 +++++++++++++++++++ > api/v1/swagger/definitions/renewals.yaml | 5 +++ > api/v1/swagger/paths/checkouts.yaml | 41 ++++++++++++++++++++++++ > 4 files changed, 115 insertions(+) > create mode 100644 api/v1/swagger/definitions/renewal.yaml > create mode 100644 api/v1/swagger/definitions/renewals.yaml > >diff --git a/Koha/REST/V1/Checkouts.pm b/Koha/REST/V1/Checkouts.pm >index b00469879a..e4a52b4cad 100644 >--- a/Koha/REST/V1/Checkouts.pm >+++ b/Koha/REST/V1/Checkouts.pm >@@ -99,6 +99,42 @@ sub get { > }; > } > >+=head3 get_renewals >+ >+List Koha::Checkout::Renewals >+ >+=cut >+ >+sub get_renewals { >+ my $c = shift->openapi->valid_input or return; >+ >+ try { >+ my $checkout_id = $c->validation->param('checkout_id'); >+ my $checkout = Koha::Checkouts->find($checkout_id); >+ $checkout = Koha::Old::Checkouts->find($checkout_id) >+ unless ($checkout); >+ >+ unless ($checkout) { >+ return $c->render( >+ status => 404, >+ openapi => { error => "Checkout doesn't exist" } >+ ); >+ } >+ >+ my $renewals_rs = $checkout->renewals; >+ my $renewals = $c->objects->search( $renewals_rs ); >+ >+ return $c->render( >+ status => 200, >+ openapi => $renewals >+ ); >+ } >+ catch { >+ $c->unhandled_exception($_); >+ }; >+} >+ >+ > =head3 renew > > Renew a checkout >diff --git a/api/v1/swagger/definitions/renewal.yaml b/api/v1/swagger/definitions/renewal.yaml >new file mode 100644 >index 0000000000..97d50ea7f6 >--- /dev/null >+++ b/api/v1/swagger/definitions/renewal.yaml >@@ -0,0 +1,33 @@ >+--- >+type: object >+properties: >+ renewal_id: >+ type: integer >+ description: internally assigned renewal identifier >+ checkout_id: >+ type: integer >+ description: internally assigned checkout identifier >+ interface: >+ type: >+ - string >+ - "null" >+ description: "Interface from which the renewal took place (values can be: api, cron, commandline, intranet, opac and sip)" >+ renewer_id: >+ $ref: ../x-primitives.yaml#/patron_id >+ renewal_date: >+ type: string >+ format: date-time >+ description: Date the renewal took place >+ seen: >+ type: >+ - boolean >+ description: Seen/Unseen renewal >+ timestamp: >+ type: string >+ description: Last update time >+ renewer: >+ type: >+ - object >+ - "null" >+ description: The object representing the renewal issuer >+additionalProperties: false >diff --git a/api/v1/swagger/definitions/renewals.yaml b/api/v1/swagger/definitions/renewals.yaml >new file mode 100644 >index 0000000000..5b2bff0270 >--- /dev/null >+++ b/api/v1/swagger/definitions/renewals.yaml >@@ -0,0 +1,5 @@ >+--- >+type: array >+items: >+ $ref: renewal.yaml >+additionalProperties: false >diff --git a/api/v1/swagger/paths/checkouts.yaml b/api/v1/swagger/paths/checkouts.yaml >index f82cd36cbd..8cecae32d3 100644 >--- a/api/v1/swagger/paths/checkouts.yaml >+++ b/api/v1/swagger/paths/checkouts.yaml >@@ -112,6 +112,7 @@ > circulate: circulate_remaining_permissions > x-koha-embed: > - issuer >+ - renewals > "/checkouts/{checkout_id}/renewal": > post: > x-mojo-to: Checkouts#renew >@@ -151,6 +152,46 @@ > x-koha-authorization: > permissions: > circulate: circulate_remaining_permissions >+"/checkouts/{checkout_id}/renewals": >+ get: >+ x-mojo-to: Checkouts#get_renewals >+ operationId: getRenewals >+ tags: >+ - checkouts >+ summary: List renewals for a checkout >+ parameters: >+ - $ref: ../parameters.yaml#/checkout_id_pp >+ produces: >+ - application/json >+ responses: >+ "200": >+ description: List of checkouts renewals >+ schema: >+ $ref: ../definitions.yaml#/renewal >+ "403": >+ description: Access forbidden >+ schema: >+ $ref: ../definitions.yaml#/error >+ "404": >+ description: Checkout 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: >+ circulate: circulate_remaining_permissions >+ x-koha-embed: >+ - renewer > "/checkouts/{checkout_id}/allows_renewal": > get: > x-mojo-to: Checkouts#allows_renewal >-- >2.20.1
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 30275
:
131593
|
131594
|
131595
|
131596
|
131597
|
131598
|
131599
|
131600
|
131601
|
131602
|
131603
|
131604
|
131605
|
131606
|
131607
|
131608
|
131609
|
131610
|
131611
|
131612
|
131613
|
131614
|
131615
|
131616
|
131879
|
131880
|
131881
|
131882
|
131883
|
131884
|
131885
|
131886
|
131887
|
131888
|
131889
|
131890
|
131897
|
131898
|
131899
|
131900
|
131901
|
131902
|
131903
|
131904
|
131905
|
131906
|
131907
|
131908
|
131909
|
131910
|
133908
|
133909
|
133910
|
133911
|
133912
|
133913
|
133914
|
133915
|
133916
|
133917
|
133918
|
133919
|
133920
|
133921
|
133922
|
133929
|
133930
|
133931
|
133932
|
133933
|
133934
|
133935
|
133936
|
133937
|
133938
|
133939
|
133940
|
133941
|
133942
|
133943
|
133944
|
133969
|
133970
|
133971
|
133972
|
133973
|
133974
|
133975
|
133976
|
133977
|
133978
|
133979
|
133980
|
133981
|
133982
|
133983
|
133984
|
134177
|
134178
|
134179
|
134180
|
134181
|
134182
|
134183
|
134184
|
134185
|
134186
|
134187
|
134188
|
134189
|
134190
|
134191
|
134192
|
134193
|
134210
|
134228
|
134229
|
134230
|
134231
|
134232
|
134233
|
134234
|
134235
|
134236
|
134237
|
134238
|
134239
|
134240
|
134241
|
134242
|
134243
|
134244
|
134245
|
134246
|
134247
|
134248
|
134470
|
134471
|
134472
|
134473
|
134869
|
134870
|
134871
|
134872
|
134873
|
134874
|
134875
|
134876
|
134877
|
134878
|
134879
|
134880
|
134881
|
134882
|
134883
|
134884
|
134885
|
134886
|
134887
|
134888
|
134889
|
135123
|
135124
|
135125
|
135126
|
135127
|
135128
|
135129
|
135130
|
135131
|
135132
|
135133
|
135134
|
135135
|
135136
|
135137
|
135138
|
135139
|
135140
|
135141
|
135142
|
135143
|
137146
|
137147
|
137148
|
137149
|
137150
|
137151
|
137152
|
137153
|
137154
|
137155
|
137156
|
137157
|
137158
|
137159
|
137160
|
137161
|
137162
|
137163
|
137164
|
137165
|
137166
|
137217
|
137598