Spaces:
Sleeping
Sleeping
OnlyBiggg
commited on
Commit
·
df0d1ca
1
Parent(s):
efec597
fix: format time
Browse files- app/dialogflow/api/v1/dialogflow.py +20 -20
- utils/format_data_dialog.py +17 -0
app/dialogflow/api/v1/dialogflow.py
CHANGED
@@ -4,7 +4,7 @@ from fastapi.responses import JSONResponse, RedirectResponse, HTMLResponse # typ
|
|
4 |
from datetime import datetime, timedelta
|
5 |
from fastapi.templating import Jinja2Templates
|
6 |
from app.dialogflow.services.dialog_service import dialog_service
|
7 |
-
|
8 |
|
9 |
from common.external.external_api import api
|
10 |
from app.dialogflow.services.origin_codes import origin_codes
|
@@ -332,24 +332,24 @@ async def is_valid_select_time(request: Request) -> Response:
|
|
332 |
routes_ids = list(set(route_dep_to_des + route_des_to_dep))
|
333 |
|
334 |
time_list: List[Dict[str, any]] = parameters.get("time_list", [])
|
335 |
-
time = parameters.get("time")
|
336 |
-
route_name = parameters.get("route_name")
|
337 |
-
|
338 |
-
if
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
|
354 |
parameters = {
|
355 |
"is_valid_time": False
|
@@ -610,7 +610,7 @@ async def response_ticket_info(request: Request) -> Response:
|
|
610 |
]
|
611 |
}
|
612 |
|
613 |
-
|
614 |
return DialogFlowResponseAPI(text=text, payload=payload)
|
615 |
|
616 |
|
|
|
4 |
from datetime import datetime, timedelta
|
5 |
from fastapi.templating import Jinja2Templates
|
6 |
from app.dialogflow.services.dialog_service import dialog_service
|
7 |
+
from utils.format_data_dialog import format_time
|
8 |
|
9 |
from common.external.external_api import api
|
10 |
from app.dialogflow.services.origin_codes import origin_codes
|
|
|
332 |
routes_ids = list(set(route_dep_to_des + route_des_to_dep))
|
333 |
|
334 |
time_list: List[Dict[str, any]] = parameters.get("time_list", [])
|
335 |
+
time = parameters.get("time-select", None)
|
336 |
+
route_name = parameters.get("route_name", None)
|
337 |
+
|
338 |
+
if time is not None:
|
339 |
+
time = format_time(time)
|
340 |
+
for time in time_list:
|
341 |
+
if time == time["time"]:
|
342 |
+
id = int(time["id"])
|
343 |
+
trip = await dialog_service.search_trip_by_id(id, from_time, to_time, routes_ids, ticket_count)
|
344 |
+
departure_date = trip["raw_departure_date"]
|
345 |
+
parameters = {
|
346 |
+
"is_valid_time": True,
|
347 |
+
"departure_time": time,
|
348 |
+
"departure_date": departure_date,
|
349 |
+
"trip": trip,
|
350 |
+
}
|
351 |
+
text = [f' Quý khách chọn chuyến {time} | {route_name}']
|
352 |
+
return DialogFlowResponseAPI(text=text, parameters=parameters)
|
353 |
|
354 |
parameters = {
|
355 |
"is_valid_time": False
|
|
|
610 |
]
|
611 |
}
|
612 |
|
613 |
+
|
614 |
return DialogFlowResponseAPI(text=text, payload=payload)
|
615 |
|
616 |
|
utils/format_data_dialog.py
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
|
3 |
+
|
4 |
+
def format_time(time: dict) -> str:
|
5 |
+
"""
|
6 |
+
Format time dictionary to string.
|
7 |
+
:param time: Time dictionary with keys 'hours' and 'minutes'.
|
8 |
+
:return: Formatted time string in HH:MM format.
|
9 |
+
"""
|
10 |
+
if time.get("past"):
|
11 |
+
hours = time["hours"]
|
12 |
+
minutes = time["minutes"]
|
13 |
+
return f"{hours:02d}:{minutes:02d}"
|
14 |
+
else:
|
15 |
+
hours = time["hours"]
|
16 |
+
minutes = time["minutes"]
|
17 |
+
return f"{hours:02d}:{minutes:02d}"
|