Fix(crud) actually enable multiple orders

This was supposed to work, but adding integration tests I realized it
didn't. #oops
This commit is contained in:
Joey Baker 2016-10-28 11:22:05 -07:00
parent 11e6ff596c
commit 8fb3f2e849
4 changed files with 6 additions and 6 deletions

View File

@ -225,7 +225,7 @@ test('crud#list handler with order', async (t) => {
t.deepEqual(
findAllArgs.order,
[request.query.order],
[[request.query.order]],
'queries with the order as an array b/c that\'s what sequelize wants'
);
});

View File

@ -144,7 +144,7 @@ export default ({
.keys({
limit: joi.number().min(0).integer(),
offset: joi.number().min(0).integer(),
order: joi.array(),
order: [joi.array(), joi.string()],
}),
get(methodConfig, 'validate.query')
);

View File

@ -70,7 +70,7 @@ export const parseOrder = (request) => {
// transform to an array so sequelize will escape the input for us and
// maintain security. See http://docs.sequelizejs.com/en/latest/docs/querying/#ordering
if (isString(order)) return order.split(' ');
if (isString(order)) return [order.split(' ')];
for (const key of Object.keys(order)) {
try {
@ -80,7 +80,7 @@ export const parseOrder = (request) => {
}
}
return order;
return [order];
};
export const getMethod = (model, association, plural = true, method = 'get') => {

View File

@ -57,7 +57,7 @@ test('parseOrder returns order when a string', (t) => {
t.deepEqual(
parseOrder(request)
, [order]
, [[order]]
);
});
@ -69,7 +69,7 @@ test('parseOrder returns order when json', (t) => {
t.deepEqual(
parseOrder(request)
, order
, [order]
);
});