Skip to content

Commit 0a3e152

Browse files
committed
fix: interval validation and datetime in utc timezone
1 parent 348de44 commit 0a3e152

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

backend/api/projects/resources.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ def get(self):
11851185
default: Token sessionTokenHere==
11861186
- name: interval
11871187
in: path
1188-
description: Time interval to get active project
1188+
description: Time interval in hours to get active project
11891189
required: false
11901190
type: integer
11911191
default: 24
@@ -1197,6 +1197,9 @@ def get(self):
11971197
500:
11981198
description: Internal Server Error
11991199
"""
1200-
interval = int(request.args.get("interval", 24))
1200+
interval = request.args.get("interval", "24")
1201+
if not interval.isdigit():
1202+
return {"Error": "Interval must be a number greater than 0"}, 400
1203+
interval = int(interval)
12011204
projects_dto = ProjectService.get_active_projects(interval)
12021205
return projects_dto, 200

backend/services/project_service.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from cachetools import TTLCache, cached
33
from flask import current_app
44
import geojson
5-
from datetime import datetime, timedelta
5+
from datetime import datetime, timedelta, timezone
66

77
from backend.exceptions import NotFound
88
from backend.models.dtos.mapping_dto import TaskDTOs
@@ -620,7 +620,7 @@ def send_email_on_project_progress(project_id):
620620

621621
@staticmethod
622622
def get_active_projects(interval):
623-
action_date = datetime.now() - timedelta(hours=interval)
623+
action_date = datetime.now(timezone.utc) - timedelta(hours=interval)
624624
result = (
625625
TaskHistory.query.with_entities(TaskHistory.project_id)
626626
.distinct()

0 commit comments

Comments
 (0)