Add batch delete w/ keys in body

Fixes #819
This commit is contained in:
rijkvanzanten
2020-11-05 14:47:57 -05:00
parent 9471bc1c95
commit a432640ecb
10 changed files with 148 additions and 9 deletions

View File

@@ -1,5 +1,4 @@
import express from 'express';
import argon2 from 'argon2';
import asyncHandler from 'express-async-handler';
import Joi from 'joi';
import {
@@ -10,6 +9,7 @@ import {
import { UsersService, MetaService, AuthenticationService } from '../services';
import useCollection from '../middleware/use-collection';
import { respond } from '../middleware/respond';
import { PrimaryKey } from '../types';
const router = express.Router();
@@ -150,6 +150,21 @@ router.patch(
respond
);
router.delete(
'/',
asyncHandler(async (req, res, next) => {
if (!req.body || Array.isArray(req.body) === false) {
throw new InvalidPayloadException(`Body has to be an array of primary keys`);
}
const service = new UsersService({ accountability: req.accountability });
await service.delete(req.body as PrimaryKey[]);
return next();
}),
respond
);
router.delete(
'/:pk',
asyncHandler(async (req, res, next) => {