[Koha-bugs] [Bug 26635] Expand authorised values in REST API call

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Mon Apr 5 21:17:30 CEST 2021


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=26635

--- Comment #24 from Tomás Cohen Arazi <tomascohen at gmail.com> ---
(In reply to Agustín Moyano from comment #23)
> 
> Now it is actually doing a "to_api" on avs when it does:
> 
> 
> +        $avs = $self->_do_api_mapping($avs);
> 
> and then
> 
> +sub _do_api_mapping {
> +    my ($self, $json_object) = @_;
> +    # Rename attributes if there's a mapping
> +    if ( $self->can('to_api_mapping') ) {
> +        foreach my $column ( keys %{ $self->to_api_mapping } ) {
> +            my $mapped_column = $self->to_api_mapping->{$column};
> +            if ( exists $json_object->{$column}
> +                && defined $mapped_column )
> +            {
> +                # key != undef
> +                $json_object->{$mapped_column} = delete
> $json_object->{$column};
> +            }
> +            elsif ( exists $json_object->{$column}
> +                && !defined $mapped_column )
> +            {
> +                # key == undef
> +                delete $json_object->{$column};
> +            }
> +        }
> +    }
>      return $json_object;
>  }
> 
> what we are currently lacking is "to_api_mapping" in AuthorisedValues

Well, we certainly need that, but we also need to call ->to_api instead of the
hand-crafted _do_api_mapping(). That's because we could want to call it with {
public => 1 } and thus making the av representation dependent on the context.
This example snippet from an hypothetical Koha::AuthorisedValue->to_api() might
illustrate what I mean:

my $json = $self->SUPER::to_api($params);

my $description = $json->{description};
$description = $json->{description_opac}
    if $params->{public}
       and defined $json->{description_opac}
       and $json->{description_opac} ne '';

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list