diff --git a/api-customer/src/controllers/telemetryController.py b/api-customer/src/controllers/telemetryController.py index 6a20150f..0af95c73 100644 --- a/api-customer/src/controllers/telemetryController.py +++ b/api-customer/src/controllers/telemetryController.py @@ -1,6 +1,6 @@ from datetime import datetime -from flask import request, jsonify +from flask import request, jsonify, Flask from src.models import logger from src.services.mongo_service import MongoService @@ -58,6 +58,7 @@ class TelemetryController: def gps(self): try: odata_filter = request.args.get("$filter") + logger.log_info(odata_filter) start_timestamp, end_timestamp = self._extract_dates_from_odata(odata_filter) logger.log_info(start_timestamp) logger.log_info(end_timestamp) @@ -101,3 +102,34 @@ class TelemetryController: end_date = dt return start_date, end_date + + +def extract_dates_from_odata(filter_str): + + start_date = None + end_date = None + + if not filter_str: + return start_date, end_date + + conditions = filter_str.split("and") + for cond in conditions: + parts = cond.strip().split() + if len(parts) != 3: + continue + + field, operator, value = parts + try: + parsed_value = int(value) + if operator == "ge": + start_date = parsed_value + elif operator == "le": + end_date = parsed_value + except ValueError: + logger.log_info(f"${value} is not a number") + + return start_date, end_date + +if __name__ == "__main__": + res = extract_dates_from_odata("from ge 1735680000 and to le 1736015999") + print(res) \ No newline at end of file