Lines 38-57
Controller function that handles listing Koha::Acquisition::Bookseller objects
Link Here
|
38 |
=cut |
38 |
=cut |
39 |
|
39 |
|
40 |
sub list_vendors { |
40 |
sub list_vendors { |
41 |
my $c = shift->openapi->valid_input or return; |
|
|
42 |
|
43 |
my $args = _to_model($c->req->params->to_hash); |
44 |
my $filter; |
45 |
|
41 |
|
46 |
for my $filter_param ( keys %$args ) { |
42 |
my $c = shift->openapi->valid_input or return; |
47 |
$filter->{$filter_param} = { LIKE => $args->{$filter_param} . "%" } |
|
|
48 |
if $args->{$filter_param}; |
49 |
} |
50 |
|
43 |
|
51 |
my @vendors; |
44 |
my @vendors; |
52 |
|
45 |
|
53 |
return try { |
46 |
return try { |
54 |
@vendors = Koha::Acquisition::Booksellers->search($filter); |
47 |
my $vendors_set = Koha::Acquisition::Booksellers->new; |
|
|
48 |
@vendors = $c->objects->search( $vendors_set, \&_to_model )->as_list; |
55 |
@vendors = map { _to_api($_->TO_JSON) } @vendors; |
49 |
@vendors = map { _to_api($_->TO_JSON) } @vendors; |
56 |
return $c->render( status => 200, |
50 |
return $c->render( status => 200, |
57 |
openapi => \@vendors ); |
51 |
openapi => \@vendors ); |
Lines 221-232
attribute names.
Link Here
|
221 |
sub _to_model { |
215 |
sub _to_model { |
222 |
my $vendor = shift; |
216 |
my $vendor = shift; |
223 |
|
217 |
|
224 |
# Rename back |
218 |
my $mapping = { |
225 |
$vendor->{listprice} = delete $vendor->{list_currency}; |
219 |
list_currency => 'listprice', |
226 |
$vendor->{invoiceprice} = delete $vendor->{invoice_currency}; |
220 |
invoice_currency => 'invoiceprice', |
227 |
$vendor->{gstreg} = delete $vendor->{gst}; |
221 |
gst => 'gstreg', |
228 |
$vendor->{listincgst} = delete $vendor->{list_includes_gst}; |
222 |
list_includes_gst => 'listincgst', |
229 |
$vendor->{invoiceincgst} = delete $vendor->{invoice_includes_gst}; |
223 |
invoice_includes_gst => 'invoiceincgst' |
|
|
224 |
}; |
225 |
|
226 |
foreach my $key ( keys %{ $mapping } ) { |
227 |
if ( exists $vendor->{ $key } ) { |
228 |
$vendor->{ $mapping->{$key} } = delete $vendor->{ $key }; |
229 |
} |
230 |
} |
230 |
|
231 |
|
231 |
return $vendor; |
232 |
return $vendor; |
232 |
} |
233 |
} |