View | Details | Raw Unified | Return to bug 27034
Collapse All | Expand All

(-)a/Koha/REST/Plugin/Objects.pm (-10 lines)
Lines 95-110 sub register { Link Here
95
                $filtered_params = $c->build_query_params( $filtered_params, $reserved_params );
95
                $filtered_params = $c->build_query_params( $filtered_params, $reserved_params );
96
            }
96
            }
97
97
98
            if ( defined $path_params ) {
99
100
                # Apply the mapping function to the passed params
101
                $filtered_params //= {};
102
                $path_params = $result_set->attributes_from_api($path_params);
103
                foreach my $param (keys %{$path_params}) {
104
                    $filtered_params->{$param} = $path_params->{$param};
105
                }
106
            }
107
108
            if( defined $reserved_params->{q} || defined $reserved_params->{query} || defined $reserved_params->{'x-koha-query'}) {
98
            if( defined $reserved_params->{q} || defined $reserved_params->{query} || defined $reserved_params->{'x-koha-query'}) {
109
                $filtered_params //={};
99
                $filtered_params //={};
110
                my @query_params_array;
100
                my @query_params_array;
(-)a/t/db_dependent/Koha/REST/Plugin/Objects.t (-48 / +1 lines)
Lines 19-25 use Modern::Perl; Link Here
19
19
20
use Koha::Acquisition::Orders;
20
use Koha::Acquisition::Orders;
21
use Koha::Cities;
21
use Koha::Cities;
22
use Koha::Holds;
23
use Koha::Biblios;
22
use Koha::Biblios;
24
23
25
# Dummy app for testing the plugin
24
# Dummy app for testing the plugin
Lines 46-61 get '/orders' => sub { Link Here
46
    $c->render( status => 200, json => $orders );
45
    $c->render( status => 200, json => $orders );
47
};
46
};
48
47
49
get '/patrons/:patron_id/holds' => sub {
50
    my $c = shift;
51
    my $params = $c->req->params->to_hash;
52
    $params->{patron_id} = $c->stash("patron_id");
53
    $c->validation->output($params);
54
    my $holds_set = Koha::Holds->new;
55
    my $holds     = $c->objects->search( $holds_set );
56
    $c->render( status => 200, json => {count => scalar(@$holds)} );
57
};
58
59
get '/biblios' => sub {
48
get '/biblios' => sub {
60
    my $c = shift;
49
    my $c = shift;
61
    my $output = $c->req->params->to_hash;
50
    my $output = $c->req->params->to_hash;
Lines 75-83 get '/biblios' => sub { Link Here
75
    $c->render( status => 200, json => {count => scalar(@$biblios), biblios => $biblios} );
64
    $c->render( status => 200, json => {count => scalar(@$biblios), biblios => $biblios} );
76
};
65
};
77
66
78
79
# The tests
67
# The tests
80
use Test::More tests => 10;
68
use Test::More tests => 9;
81
use Test::Mojo;
69
use Test::Mojo;
82
70
83
use t::lib::Mocks;
71
use t::lib::Mocks;
Lines 274-313 subtest 'objects.search helper, embed' => sub { Link Here
274
    $schema->storage->txn_rollback;
262
    $schema->storage->txn_rollback;
275
};
263
};
276
264
277
subtest 'objects.search helper, with path parameters and _match' => sub {
278
    plan tests => 8;
279
280
    $schema->storage->txn_begin;
281
282
    Koha::Holds->search()->delete;
283
284
    my $patron = Koha::Patrons->find(10);
285
    $patron->delete if $patron;
286
    $patron = $builder->build_object( { class => "Koha::Patrons" } );
287
    $patron->borrowernumber(10)->store;
288
    $builder->build_object(
289
        {
290
            class => "Koha::Holds",
291
            value => { borrowernumber => $patron->borrowernumber }
292
        }
293
    );
294
295
    my $t = Test::Mojo->new;
296
    $t->get_ok('/patrons/1/holds?_match=exact')
297
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=exact');
298
299
    $t->get_ok('/patrons/1/holds?_match=contains')
300
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=contains');
301
302
    $t->get_ok('/patrons/10/holds?_match=exact')
303
      ->json_is('/count' => 1, 'there should be 1 hold for borrower 10 with _match=exact');
304
305
    $t->get_ok('/patrons/10/holds?_match=contains')
306
      ->json_is('/count' => 1, 'there should be 1 hold for borrower 10 with _match=contains');
307
308
    $schema->storage->txn_rollback;
309
};
310
311
subtest 'object.search helper with query parameter' => sub {
265
subtest 'object.search helper with query parameter' => sub {
312
    plan tests => 4;
266
    plan tests => 4;
313
267
314
- 

Return to bug 27034