GMaps API: retrieve photo, update models
This commit is contained in:
parent
7c4dab695c
commit
f4133d6446
@ -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):
|
||||
|
||||
@ -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}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user