diff --git a/src/crud.js b/src/crud.js index da0b756..be9bcd1 100644 --- a/src/crud.js +++ b/src/crud.js @@ -244,10 +244,18 @@ export const destroy = ({ server, model, prefix = '/', config }) => { @error async handler(request, reply) { 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 }); + if (!list.length) { + return void reply(id + ? notFound(`${id} not found.`) + : notFound('Nothing found.') + ); + } + await Promise.all(list.map(instance => instance.destroy())); const listAsJSON = list.map((item) => item.toJSON()); @@ -266,9 +274,17 @@ export const destroyAll = ({ server, model, prefix = '/', config }) => { @error async handler(request, reply) { const where = parseWhere(request); + const { id } = request.params; 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())); const listAsJSON = list.map((item) => item.toJSON());