Commit 1ad01de6 authored by Giannis Kepas's avatar Giannis Kepas
Browse files

decode time params for temporal

parent 2707e1db
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
const axios = require("axios");
const qs = require("qs");
const NGSITranslator = require("../translator/NGSITranslator");
const typeMaps = require("../typeMaps/typeMaps");

@@ -20,7 +19,8 @@ function generateMeasurementTypeParam(type, attributes) {
        ? attributes.split(",").map(attr => Object.entries(typeMap)
            .find(([_, value]) => value.slug === attr)?.[0])
            .filter(Boolean)
        : Object.keys(typeMap);
            .map(type => `"${type}"`) // Ensure all attributes are quoted
        : Object.keys(typeMap).map(type => `"${type}"`); // Quote all keys

    if (measurementTypes.length === 0) {
        throw new Error(`No valid attributes found for type '${type}' and attributes '${attributes}'`);
@@ -85,7 +85,6 @@ const fetchTemporalData = async (type, measurementTypes, params) => {
                        measurement_type: `in.(${measurementTypes.join(",")})`,
                        ts: params.ts,
                    },
                    paramsSerializer: (params) => qs.stringify(params, { encode: false }) // Prevent double encoding
                });

                return response;
@@ -144,9 +143,12 @@ const fetchRealTimeData = async (type, measurementTypes, params) => {
const getTemporalEntities = async (req, res) => {
    console.log("Incoming temporal request:", req.query);
    let { type, timerel, time, endTime, attrs } = req.query;

    let tsParams = [];

    // Decode the time parameter if it's encoded
    time = decodeURIComponent(time);
    endTime = decodeURIComponent(endTime);

    switch (timerel) {
        case "after":
            tsParams.push(`gte.${time}`);
+3 −19
Original line number Diff line number Diff line
{
  "name": "wrappertest",
  "name": "uowm-http-bridge",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "wrappertest",
      "name": "uowm-http-bridge",
      "version": "1.0.0",
      "license": "ISC",
      "dependencies": {
        "axios": "^1.7.8",
        "dotenv": "^16.4.5",
        "express": "^4.21.1",
        "morgan": "^1.10.0",
        "qs": "^6.14.0"
        "morgan": "^1.10.0"
      }
    },
    "node_modules/accepts": {
@@ -784,21 +783,6 @@
      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
      "license": "MIT"
    },
    "node_modules/qs": {
      "version": "6.14.0",
      "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
      "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
      "license": "BSD-3-Clause",
      "dependencies": {
        "side-channel": "^1.1.0"
      },
      "engines": {
        "node": ">=0.6"
      },
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+1 −2
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@
    "axios": "^1.7.8",
    "dotenv": "^16.4.5",
    "express": "^4.21.1",
    "morgan": "^1.10.0",
    "qs": "^6.14.0"
    "morgan": "^1.10.0"
  }
}