GMaps API: retrieve photo, update models

This commit is contained in:
itskovacs 2025-11-09 18:41:14 +01:00
parent 7c4dab695c
commit f4133d6446
2 changed files with 15 additions and 0 deletions

View File

@ -98,12 +98,14 @@ class PendingTOTP(BaseModel):
class GooglePlaceResult(BaseModel):
name: str | None = None
category: str | None = None
lat: float | None = None
lng: float | None = None
price: float | None = None
allowsdog: bool | None = None
description: str | None = None
types: list[str] = []
image: str | None = None
class ImageBase(SQLModel):

View File

@ -55,6 +55,19 @@ async def gmaps_textsearch(search: str, api_key: str) -> list[dict[str, Any]]:
raise HTTPException(status_code=400, detail="Bad Request")
async def gmaps_photo(name: str, api_key: str) -> str | None:
url = f"https://places.googleapis.com/v1/{name}/media"
params = {"key": api_key, "maxWidthPx": 1000}
try:
async with httpx.AsyncClient(timeout=10.0) as client:
response = await client.get(url, params=params, follow_redirects=True)
response.raise_for_status()
return str(response.url) if response.url else None
except Exception:
raise HTTPException(status_code=400, detail="Bad Request")
async def gmaps_get_boundaries(name: str, api_key: str) -> dict[str, Any] | None:
url = "https://maps.googleapis.com/maps/api/geocode/json"
params = {"address": name, "key": api_key}