From 678690437c1d7fb2a8ab7623d39f622a60e45e02 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 9 Mar 2023 13:14:04 +0000 Subject: [PATCH] Bug 33161: Clarify method names The api_strings_mapping method isn't really only about api strings.. we deal with database fields in and out.. we just happen to then use those in to_api to map in the api. This patch simply renames the standard method whilst we're still early. Signed-off-by: Tomas Cohen Arazi (cherry picked from commit bbff26575f59e325ba6a3db1d5b986f5356fe2ae) Signed-off-by: Martin Renvoize --- Koha/Item.pm | 13 ++++++++++--- Koha/Object.pm | 24 ++++++++++++------------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Koha/Item.pm b/Koha/Item.pm index 42c8959f45..d6c75d2856 100644 --- a/Koha/Item.pm +++ b/Koha/Item.pm @@ -2059,13 +2059,20 @@ sub is_denied_renewal { return 0; } -=head3 api_strings_mapping +=head3 strings_map -Retrieves for each column name the unblessed authorised value. +Returns a map of column name to string representations including the string, +the mapping type and the mapping category where appropriate. + +Currently handles authorised value mappings, library, callnumber and itemtype +expansions. + +Accepts a param hashref where the 'public' key denotes whether we want the public +or staff client strings. =cut -sub api_strings_mapping { +sub strings_map { my ( $self, $params ) = @_; my $columns_info = $self->_result->result_source->columns_info; diff --git a/Koha/Object.pm b/Koha/Object.pm index 102d7154db..7f511259b1 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -562,9 +562,9 @@ sub to_api { my $strings = delete $params->{strings}; # coded values handling - my $avs = {}; - if ( $strings and $self->can('api_strings_mapping') ) { - $avs = $self->api_strings_mapping($params); + my $string_map = {}; + if ( $strings and $self->can('strings_map') ) { + $string_map = $self->strings_map($params); } # Remove forbidden attributes if required (including their coded values) @@ -575,8 +575,8 @@ sub to_api { } if ($strings) { - foreach my $field ( keys %{$avs} ) { - delete $avs->{$field} + foreach my $field ( keys %{$string_map} ) { + delete $string_map->{$field} unless any { $_ eq $field } @{ $self->public_read_list }; } } @@ -594,8 +594,8 @@ sub to_api { # key != undef $json_object->{$mapped_column} = delete $json_object->{$column}; - $avs->{$mapped_column} = delete $avs->{$column} - if exists $avs->{$column}; + $string_map->{$mapped_column} = delete $string_map->{$column} + if exists $string_map->{$column}; } elsif ( exists $json_object->{$column} @@ -604,12 +604,12 @@ sub to_api { # key == undef delete $json_object->{$column}; - delete $avs->{$column}; + delete $string_map->{$column}; } } } - $json_object->{_strings} = $avs + $json_object->{_strings} = $string_map if $strings; if ($embeds) { @@ -676,10 +676,10 @@ sub to_api_mapping { return {}; } -=head3 api_strings_mapping +=head3 strings_map my $params = { is_public => 1 }; - my $string_map = $object->api_strings_mapping($params); + my $string_map = $object->strings_map($params); Generic method that returns the string map for coded attributes. @@ -693,7 +693,7 @@ own mapping returned. =cut -sub api_strings_mapping { +sub strings_map { return {}; } -- 2.39.5