Spaces:
Sleeping
Sleeping
| from typing import Literal, Optional | |
| from fastapi.params import Depends | |
| from typing_extensions import Annotated | |
| from app.services.location_service import LocationService | |
| from app.resolvers.origin_code import get_city_id_and_code | |
| class LocationResolver: | |
| def __init__(self, location_service: LocationService): | |
| self.location_service = location_service | |
| async def resolve_info( | |
| self, | |
| office: Optional[str], | |
| city: Optional[str], | |
| role: Literal["origin", "dest"], | |
| ) -> tuple[Optional[int], Optional[str], Optional[int]]: | |
| if office: | |
| id, code, _ = await self.location_service.get_city_by_office( | |
| office_name=office, role=role | |
| ) | |
| ids = await self.location_service.get_office_id_by_name(office) | |
| return id, code, ids | |
| if city: | |
| id, code = get_city_id_and_code(city) | |
| return id, code, None | |
| return None, None, None | |