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}"
|