diff --git a/src/modules/users/controller.js b/src/modules/users/controller.js index 6b7c38f..ab346ee 100644 --- a/src/modules/users/controller.js +++ b/src/modules/users/controller.js @@ -65,3 +65,22 @@ export async function updateUser(ctx) { ctx.throw(500) } } + +export async function deleteUser(ctx) { + try { + const user = await User.findById(ctx.params.id) + if (!user) { + ctx.throw(404) + } + + await user.remove() + + ctx.body = 200 + } catch (err) { + if (err === 404 || err.name === 'CastError') { + ctx.throw(404) + } + + ctx.throw(500) + } +} diff --git a/src/modules/users/router.js b/src/modules/users/router.js index e729c24..ad84a61 100644 --- a/src/modules/users/router.js +++ b/src/modules/users/router.js @@ -37,5 +37,14 @@ export default { ensureUser, user.updateUser ] + }, + + 'Delete user': { + method: 'DELETE', + route: '/:id', + handlers: [ + ensureUser, + user.deleteUser + ] } }