const { check } = require("express-validator"); const {toLower} = require("../src/customSanitizers"); const assets = require("../src/assets"); const bb = require("../src/boundingbox"); const commonChecks = () => { return [ check("service") .exists().withMessage("MissingParameterValue") .customSanitizer(toLower) .equals("3dps").withMessage("InvalidParameterValue"), check("acceptversions") .exists().withMessage("MissingParameterValue") .equals("1.0").withMessage("InvalidParameterValue") ]; } const specificChecks = (parameter) => { switch (parameter.toLowerCase()) { case "getscene": { return [ check("boundingbox") .exists().withMessage("MissingParameterValue") .matches(/^((\-?\d+(\.\d+)?),){3}(\-?\d+(\.\d+)?)$/).withMessage("InvalidParameterValue") .custom(value => bb.isValid(value)).withMessage("InvalidParameterValue"), check("layers") .exists().withMessage("MissingParameterValue") .custom(value => assets.allLayersExist(value)).withMessage("UnknownLayer") ]; } case "getcapabilities": { return []; } } } module.exports = { commonChecks, specificChecks };