From 7ff5624850a8d582d680e621168d7ccdb58bb912 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 31 Dec 2019 09:16:17 -0300 Subject: [PATCH] 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 --- Koha/Objects.pm | 15 +++++++++++++++ t/db_dependent/Koha/Objects.t | 24 +++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Koha/Objects.pm b/Koha/Objects.pm index 31387e1442..165511a42a 100644 --- a/Koha/Objects.pm +++ b/Koha/Objects.pm @@ -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 diff --git a/t/db_dependent/Koha/Objects.t b/t/db_dependent/Koha/Objects.t index 592ab40866..e6e5db2289 100644 --- a/t/db_dependent/Koha/Objects.t +++ b/t/db_dependent/Koha/Objects.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 17; +use Test::More tests => 18; use Test::Exception; use Test::Warn; @@ -330,3 +330,25 @@ subtest "TO_JSON() tests" => sub { $schema->storage->txn_rollback; }; + +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; +}; -- 2.24.1