An error occurred while loading the file. Please try again.
v1.js 1.31 KiB
const express = require("express");
const { check, validationResult, oneOf } = require("express-validator")
const {toLower} = require("../src/customSanitizers");
const { errorHandler } = require("../src/errorHandler");
const checkFactory = require("../src/validationCheckFactory");
const requestHandlerFactory = require("../src/requestHandlerFactory");
let router = express.Router();
const checks = [
  ...checkFactory.commonChecks(),
  check("request")
    .exists().withMessage("MissingParameterValue")
    .customSanitizer(toLower)
    .isIn([ "getscene", "getcapabilities" ]).withMessage("InvalidParameterValue"),
  oneOf([[
    check("request").customSanitizer(toLower).equals("getscene"),
    ...checkFactory.specificChecks("getscene")
  ], [
    check("request").customSanitizer(toLower).equals("getcapabilities"),
    ...checkFactory.specificChecks("getcapabilities")
  ]])
];
router.route("/")
  .get(checks, (req, res) => {
    const errors = validationResult(req)
    if (!errors.isEmpty()) {
      let exception = errorHandler(errors);
      res.set("Content-Type", "application/xml");
      return res.status(400).send(exception);
    let requestHandler = requestHandlerFactory.createHandler(req.query.request);
    requestHandler(req, res);
  });
module.exports = router;