Lines 34-39
get '/patrons' => sub {
Link Here
|
34 |
$c->render( status => 200, json => $patrons ); |
34 |
$c->render( status => 200, json => $patrons ); |
35 |
}; |
35 |
}; |
36 |
|
36 |
|
|
|
37 |
get '/patrons_to_model' => sub { |
38 |
my $c = shift; |
39 |
$c->validation->output($c->req->params->to_hash); |
40 |
my $patrons_set = Koha::Patrons->new; |
41 |
my $patrons = $c->objects->search( $patrons_set, \&_to_model ); |
42 |
$c->render( status => 200, json => $patrons ); |
43 |
}; |
44 |
|
45 |
sub _to_model { |
46 |
my $params = shift; |
47 |
|
48 |
if ( exists $params->{nombre} ) { |
49 |
$params->{firstname} = delete $params->{nombre}; |
50 |
} |
51 |
|
52 |
return $params; |
53 |
} |
37 |
|
54 |
|
38 |
# The tests |
55 |
# The tests |
39 |
use Test::More tests => 1; |
56 |
use Test::More tests => 1; |
Lines 49-55
my $builder = t::lib::TestBuilder->new;
Link Here
|
49 |
|
66 |
|
50 |
subtest 'objects.search helper' => sub { |
67 |
subtest 'objects.search helper' => sub { |
51 |
|
68 |
|
52 |
plan tests => 34; |
69 |
plan tests => 62; |
53 |
|
70 |
|
54 |
my $t = Test::Mojo->new; |
71 |
my $t = Test::Mojo->new; |
55 |
|
72 |
|
Lines 121-125
subtest 'objects.search helper' => sub {
Link Here
|
121 |
->json_is('/1/firstname' => 'Manuela') |
138 |
->json_is('/1/firstname' => 'Manuela') |
122 |
->json_is('/2/firstname' => 'Emanuel'); |
139 |
->json_is('/2/firstname' => 'Emanuel'); |
123 |
|
140 |
|
|
|
141 |
## _to_model tests |
142 |
# _match=starts_with |
143 |
$t->get_ok('/patrons_to_model?nombre=manuel&_per_page=3&_page=1&_match=starts_with') |
144 |
->status_is(200) |
145 |
->json_has('/0') |
146 |
->json_has('/1') |
147 |
->json_hasnt('/2') |
148 |
->json_is('/0/firstname' => 'Manuel') |
149 |
->json_is('/1/firstname' => 'Manuela'); |
150 |
|
151 |
# _match=ends_with |
152 |
$t->get_ok('/patrons_to_model?nombre=manuel&_per_page=3&_page=1&_match=ends_with') |
153 |
->status_is(200) |
154 |
->json_has('/0') |
155 |
->json_has('/1') |
156 |
->json_hasnt('/2') |
157 |
->json_is('/0/firstname' => 'Manuel') |
158 |
->json_is('/1/firstname' => 'Emanuel'); |
159 |
|
160 |
# _match=exact |
161 |
$t->get_ok('/patrons_to_model?nombre=manuel&_per_page=3&_page=1&_match=exact') |
162 |
->status_is(200) |
163 |
->json_has('/0') |
164 |
->json_hasnt('/1') |
165 |
->json_is('/0/firstname' => 'Manuel'); |
166 |
|
167 |
# _match=contains |
168 |
$t->get_ok('/patrons_to_model?nombre=manuel&_per_page=3&_page=1&_match=contains') |
169 |
->status_is(200) |
170 |
->json_has('/0') |
171 |
->json_has('/1') |
172 |
->json_has('/2') |
173 |
->json_hasnt('/3') |
174 |
->json_is('/0/firstname' => 'Manuel') |
175 |
->json_is('/1/firstname' => 'Manuela') |
176 |
->json_is('/2/firstname' => 'Emanuel'); |
177 |
|
124 |
$schema->storage->txn_rollback; |
178 |
$schema->storage->txn_rollback; |
125 |
}; |
179 |
}; |
126 |
- |
|
|