OnlyBiggg commited on
Commit
df0d1ca
·
1 Parent(s): efec597

fix: format time

Browse files
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
- raw_input = body.get("text","")
338
- if raw_input:
339
- raw_input = raw_input.strip()
340
- for time in time_list:
341
- if raw_input == 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": raw_input,
348
- "departure_date": departure_date,
349
- "trip": trip,
350
- }
351
- text = [f' Quý khách chọn chuyến {raw_input} | {route_name}']
352
- return DialogFlowResponseAPI(text=text, parameters=parameters)
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}"