Bug 24321: Add Koha::Objects->attributes_from_api

This patch makes the 'attributes_from_api' method from the singular
class available from the result set class.

To test:
1. Apply this patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Objects.t
=> SUCCESS: Tests pass!
4. Sign off :-D
5. Yeah, I skipped 3 :-P

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Tomas Cohen Arazi 2019-12-31 09:16:17 -03:00 committed by Martin Renvoize
parent badbd7d859
commit fabcedca05
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
2 changed files with 37 additions and 0 deletions

View File

@ -320,6 +320,21 @@ sub to_api {
return [ map { $_->to_api } $self->as_list ];
}
=head3 attributes_from_api
my $attributes = $objects->attributes_from_api( $api_attributes );
Translates attributes from the API to DBIC
=cut
sub attributes_from_api {
my ( $self, $attributes ) = @_;
$self->{_singular_object} ||= $self->object_class->new();
return $self->{_singular_object}->attributes_from_api( $attributes );
}
=head3 Koha::Objects->_wrap
wraps the DBIC object in a corresponding Koha object

View File

@ -675,3 +675,25 @@ subtest 'Return same values as DBIx::Class' => sub {
};
};
subtest "attributes_from_api() tests" => sub {
plan tests => 1;
$schema->storage->txn_begin;
my $cities_rs = Koha::Cities->new;
my $city = Koha::City->new;
my $api_attributes = {
name => 'Cordoba',
postal_code => 5000
};
is_deeply(
$cities_rs->attributes_from_api($api_attributes),
$city->attributes_from_api($api_attributes)
);
$schema->storage->txn_rollback;
};