validationCheckFactory.js 1.23 KB
Newer Older
Athanasios's avatar
Athanasios committed
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
34
35
36
37
38
39
40
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 };