Lines 445-450
sub from_api_mapping {
Link Here
|
445 |
return $self->{_from_api_mapping}; |
445 |
return $self->{_from_api_mapping}; |
446 |
} |
446 |
} |
447 |
|
447 |
|
|
|
448 |
=head3 new_from_api |
449 |
|
450 |
my $object = Koha::Object->new_from_api; |
451 |
my $object = Koha::Object->new_from_api( $attrs ); |
452 |
|
453 |
Creates a new object, mapping the API attribute names to the ones on the DB schema. |
454 |
|
455 |
=cut |
456 |
|
457 |
sub new_from_api { |
458 |
my ( $class, $params ) = @_; |
459 |
|
460 |
my $self = $class->new; |
461 |
return $self->set_from_api( $params ); |
462 |
} |
463 |
|
464 |
=head3 set_from_api |
465 |
|
466 |
my $object = Koha::Object->new(...); |
467 |
$object->set_from_api( $attrs ) |
468 |
|
469 |
Sets the object's attributes mapping API attribute names to the ones on the DB schema. |
470 |
|
471 |
=cut |
472 |
|
473 |
sub set_from_api { |
474 |
my ( $self, $from_api_params ) = @_; |
475 |
|
476 |
return $self->set( $self->attributes_from_api( $from_api_params ) ); |
477 |
} |
478 |
|
479 |
=head3 attributes_from_api |
480 |
|
481 |
my $attributes = attributes_from_api( $params ); |
482 |
|
483 |
Returns the passed params, converted from API naming into the model. |
484 |
|
485 |
=cut |
486 |
|
487 |
sub attributes_from_api { |
488 |
my ( $self, $from_api_params ) = @_; |
489 |
|
490 |
my $from_api_mapping = $self->from_api_mapping; |
491 |
|
492 |
my $params; |
493 |
|
494 |
while (my ($key, $value) = each %{ $from_api_params } ) { |
495 |
if ( exists $from_api_mapping->{$key} ) { |
496 |
$params->{$from_api_mapping->{$key}} = $value; |
497 |
} |
498 |
else { |
499 |
$params->{$key} = $value; |
500 |
} |
501 |
} |
502 |
|
503 |
return $params; |
504 |
} |
505 |
|
448 |
=head3 $object->unblessed_all_relateds |
506 |
=head3 $object->unblessed_all_relateds |
449 |
|
507 |
|
450 |
my $everything_into_one_hashref = $object->unblessed_all_relateds |
508 |
my $everything_into_one_hashref = $object->unblessed_all_relateds |
Lines 557-594
sub AUTOLOAD {
Link Here
|
557 |
return $r; |
615 |
return $r; |
558 |
} |
616 |
} |
559 |
|
617 |
|
560 |
=head3 attributes_from_api |
|
|
561 |
|
562 |
my $attributes = attributes_from_api( $params ); |
563 |
|
564 |
Returns the passed params, converted from API naming into the model. |
565 |
|
566 |
=cut |
567 |
|
568 |
sub attributes_from_api { |
569 |
my ( $self, $attributes ) = @_; |
570 |
|
571 |
my $mapping = $self->from_api_mapping; |
572 |
|
573 |
foreach my $attribute ( keys %{$mapping} ) { |
574 |
my $mapped_attribute = $mapping->{$attribute}; |
575 |
if ( exists $attributes->{$attribute} |
576 |
&& defined $mapped_attribute ) |
577 |
{ |
578 |
# key => !undef |
579 |
$attributes->{$mapped_attribute} = delete $attributes->{$attribute}; |
580 |
} |
581 |
elsif ( exists $attributes->{$attribute} |
582 |
&& !defined $mapped_attribute ) |
583 |
{ |
584 |
# key => undef / to be deleted |
585 |
delete $attributes->{$attribute}; |
586 |
} |
587 |
} |
588 |
|
589 |
return $attributes; |
590 |
} |
591 |
|
592 |
=head3 _type |
618 |
=head3 _type |
593 |
|
619 |
|
594 |
This method must be defined in the child class. The value is the name of the DBIC resultset. |
620 |
This method must be defined in the child class. The value is the name of the DBIC resultset. |
595 |
- |
|
|