dialogflowAPI / app /services /origin_codes.py
OnlyBiggg
refactor code
df37f6e
# import json
# with open("static/files/origin-codes.json", "r", encoding="utf-8") as file:
# origin_codes = json.load(file)
# def get_origin_id_and_code(origin: str):
# for x in origin_codes:
# if x and x.get("name"):
# if origin == x["name"]:
# id = x["id"],
# code = x["code"]
# id = id[0] if isinstance(id, tuple) else id
# return id, code
# return None, None
import json
import os
from typing import Optional, Tuple
ORIGIN_CODES_PATH = "static/files/origin-codes.json"
def load_origin_codes() -> list[dict]:
try:
with open(ORIGIN_CODES_PATH, "r", encoding="utf-8") as file:
return json.load(file)
except (FileNotFoundError, json.JSONDecodeError):
return []
def get_origin_id_and_code(origin_name: str) -> Tuple[Optional[int], Optional[str]]:
"""
Truy xuất province_id và province_code từ file JSON tĩnh theo tên tỉnh/thành phố.
Args:
origin_name (str): Tên thành phố gốc
Returns:
Tuple[province_id, province_code] hoặc (None, None) nếu không tìm thấy
"""
origin_name = origin_name.strip().lower()
for entry in load_origin_codes():
name = entry.get("name", "").lower()
if name == origin_name:
return entry.get("id"), entry.get("code")
return None, None