From 4104f782d89d2b16ab4f8379da8afea3823be8ab Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 27 Dec 2019 17:03:16 +0100 Subject: [PATCH] Bug 23893: Remove Overloaded method from Koha::Patron That way we are dealing with any date fields for any Koha::Object Signed-off-by: Kyle M Hall Signed-off-by: Martin Renvoize --- Koha/Object.pm | 15 ++++++++++----- Koha/Patron.pm | 25 ------------------------- 2 files changed, 10 insertions(+), 30 deletions(-) diff --git a/Koha/Object.pm b/Koha/Object.pm index 4eff45cf0c..64e6b33e74 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -491,14 +491,19 @@ sub attributes_from_api { my $from_api_mapping = $self->from_api_mapping; my $params; + my $columns_info = $self->_result->result_source->columns_info; while (my ($key, $value) = each %{ $from_api_params } ) { - if ( exists $from_api_mapping->{$key} ) { - $params->{$from_api_mapping->{$key}} = $value; - } - else { - $params->{$key} = $value; + my $koha_field_name = + exists $from_api_mapping->{$key} + ? $from_api_mapping->{$key} + : $key; + + if ( _date_or_datetime_column_type( $columns_info->{$koha_field_name}->{data_type} ) ) { + $value = dt_from_string($value, 'rfc3339'); } + + $params->{$koha_field_name} = $value; } return $params; diff --git a/Koha/Patron.pm b/Koha/Patron.pm index b13253e50d..a3ebfc9b2e 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -1569,31 +1569,6 @@ sub to_api { return $json_patron; } -=head3 attributes_from_api - - my $attrs = $patron->attributes_from_api( $attrs ); - -Overloaded method that implement specific data transformations after -calling the original Koha::Object->attributes_from_api method. - -=cut - -sub attributes_from_api { - my ( $self, $attrs ) = @_; - - $attrs = $self->SUPER::attributes_from_api( $attrs ); - - if ( exists $attrs->{lastseen} ) { - $attrs->{lastseen} = dt_from_string($attrs->{lastseen}, 'rfc3339'); - } - - if ( exists $attrs->{updated_on} ) { - $attrs->{updated_on} = dt_from_string($attrs->{updated_on}, 'rfc3339'); - } - - return $attrs; -} - =head3 to_api_mapping This method returns the mapping for representing a Koha::Patron object