bcgov/common-hosted-email-service

View on GitHub
app/src/routes/v1/cancel.js

Summary

Maintainability
A
1 hr
Test Coverage
A
100%
const cancelRouter = require('express').Router();
const { validateCancelQuery, validateCancelMsg } = require('../../middleware/validation');
const ChesService = require('../../services/chesSvc');

const chesService = new ChesService();

/** Cancel multiple delayed messages endpoint */
cancelRouter.delete('/', validateCancelQuery, async (req, res, next) => {
  try {
    await chesService.findCancelMessages(req.authorizedParty, req.query.msgId?.toLowerCase(),
      req.query.status, req.query.tag, req.query.txId?.toLowerCase());

    res.status(202)
      .header('Content-Location', req.originalUrl.replace('cancel', 'status'))
      .end();
  } catch (err) {
    next(err);
  }
});

/** Cancel a single delayed message endpoint */
cancelRouter.delete('/:msgId', validateCancelMsg, async (req, res, next) => {
  try {
    await chesService.cancelMessage(req.authorizedParty, req.params.msgId.toLowerCase());

    res.status(202)
      .header('Content-Location', req.originalUrl.replace('cancel', 'status'))
      .end();
  } catch (err) {
    next(err);
  }
});

module.exports = cancelRouter;