All files / app/routes/api/group/group-id/delete delete-group-controller.ts

100% Statements 10/10
100% Branches 4/4
100% Functions 1/1
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 341x 1x                           1x         8x 8x   8x 3x     5x   2x     1x  
import {GroupService} from '@app/models';
import {
  BadRequestError,
} from '@errors';
import {RequestHandler} from 'express';
 
/**
 * Controller for deleting a group.
 *
 * Only deletes a group if the currently logged-in user
 * is the owner of that group.
 * @param req   - Request
 * @param res   - Response
 * @param _next  - Next
 */
const deleteGroupController: RequestHandler = async (
  req,
  res,
  _next,
) => {
  const user = req.user;
  const groupId = parseInt(req.params.groupId, 10);
 
  if (typeof user !== 'object' || isNaN(groupId)) {
    throw new BadRequestError('Incorrect arguments');
  }
 
  await GroupService.delete(user, groupId);
 
  res.status(204).send();
};
 
export default deleteGroupController;