Bug 24191: Add to_model param to _build_order_atom and dbic_merge_sorting
authorTomas Cohen Arazi <tomascohen@theke.io>
Mon, 9 Dec 2019 17:48:48 +0000 (14:48 -0300)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 10 Dec 2019 16:17:10 +0000 (16:17 +0000)
commit741b9a1c73ce366b02016a8bc80b5c01d5712c07
tree9dd7083da01aabc086bf6f99dc239eac3446bd08
parent2a169e94cdabf77098425b8bccfbbfa4b0fdf926
Bug 24191: Add to_model param to _build_order_atom and dbic_merge_sorting

This patch adds a to_model parameter to dbic_merge_sorting so it is
passed when used (for example from objects.search). The to_model param
is passed along to the _build_order_atom method where it is finally
used.

In the process I wrote tests that reflected some problems in the current
code:
- Mojolicious automatically returns a scalar if a query parameter only
happens once on a request. The code expected an arrayref in every case.
- There's a design issue that forced me to use some hacky code in
_build_order_atom.

The first issue is dealth with, by using Scalar::Util::reftype as the
Perl docs recommend.

The second issue, I don't plan to clean it here, as there's ongoing work
on a Koha::Objects->search_from_api method that will obsolete this code
most probably (see bug 23893 for a better picture of where the mappings
will be living soon).

To test:
1. Apply this patch
2. Run:
  $ kshell
 k$ prove t/Koha/REST/Plugin/Query.t
=> SUCCESS: Tests pass!!
3. Sign off :-D

Sponsored-by: ByWater Solutions
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Koha/REST/Plugin/Query.pm
t/Koha/REST/Plugin/Query.t