@@ -, +, @@ --- Koha/Object.pm | 15 ++++++++++----- Koha/Patron.pm | 25 ------------------------- 2 files changed, 10 insertions(+), 30 deletions(-) --- a/Koha/Object.pm +++ a/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; --- a/Koha/Patron.pm +++ a/Koha/Patron.pm @@ -1565,31 +1565,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 --