Fix(crud) 404 errors for destroy and destroyAll

This commit is contained in:
Joey Baker 2016-10-27 12:33:31 -07:00
parent 0713f81301
commit 94e9870133

View File

@ -244,10 +244,18 @@ export const destroy = ({ server, model, prefix = '/', config }) => {
@error @error
async handler(request, reply) { async handler(request, reply) {
const where = parseWhere(request); const where = parseWhere(request);
if (request.params.id) where[model.primaryKeyField] = request.params.id; const { id } = request.params;
if (id) where[model.primaryKeyField] = id;
const list = await model.findAll({ where }); const list = await model.findAll({ where });
if (!list.length) {
return void reply(id
? notFound(`${id} not found.`)
: notFound('Nothing found.')
);
}
await Promise.all(list.map(instance => instance.destroy())); await Promise.all(list.map(instance => instance.destroy()));
const listAsJSON = list.map((item) => item.toJSON()); const listAsJSON = list.map((item) => item.toJSON());
@ -266,9 +274,17 @@ export const destroyAll = ({ server, model, prefix = '/', config }) => {
@error @error
async handler(request, reply) { async handler(request, reply) {
const where = parseWhere(request); const where = parseWhere(request);
const { id } = request.params;
const list = await model.findAll({ where }); const list = await model.findAll({ where });
if (!list.length) {
return void reply(id
? notFound(`${id} not found.`)
: notFound('Nothing found.')
);
}
await Promise.all(list.map(instance => instance.destroy())); await Promise.all(list.map(instance => instance.destroy()));
const listAsJSON = list.map((item) => item.toJSON()); const listAsJSON = list.map((item) => item.toJSON());