From 731c9dd7c90fab24a6c137c9946756123710feb5 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 24 Sep 2021 12:19:12 +0100 Subject: [PATCH] Bug 29105: Add effective_itemtype handling to items api This patch adds effective_item_type_id to the items api. We overload the to_api method to append the effective_item_type_id field with that of the effective itemtype code. Signed-off-by: Nick Clemens Signed-off-by: Tomas Cohen Arazi (cherry picked from commit dc75b5d5cd181d8f8e50e98adb7afc69fc6a8838) Signed-off-by: Lucas Gass (cherry picked from commit f00a28b576ed9c2efcff22f43f2261f7d9b6ef12) Signed-off-by: Arthur Suzuki --- Koha/Item.pm | 17 +++++++++++++++++ api/v1/swagger/definitions/item.yaml | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/Koha/Item.pm b/Koha/Item.pm index bdd395420d..a3376699c9 100644 --- a/Koha/Item.pm +++ b/Koha/Item.pm @@ -1232,6 +1232,23 @@ sub public_read_list { ]; } +=head3 to_api + +Overloaded to_api method to ensure item-level itypes is adhered to. + +=cut + +sub to_api { + my ($self, $params) = @_; + + my $response = $self->SUPER::to_api($params); + my $overrides = {}; + + $overrides->{effective_item_type_id} = $self->effective_itemtype; + + return { %$response, %$overrides }; +} + =head3 to_api_mapping This method returns the mapping for representing a Koha::Item object diff --git a/api/v1/swagger/definitions/item.yaml b/api/v1/swagger/definitions/item.yaml index 8b00c96c88..48bd53647e 100644 --- a/api/v1/swagger/definitions/item.yaml +++ b/api/v1/swagger/definitions/item.yaml @@ -183,6 +183,11 @@ properties: - string - "null" description: Itemtype defining the type for this item + effective_item_type_id: + type: + - string + - "null" + description: Effective itemtype defining the type for this item_id extended_subfields: type: - string