Ë
    ÜjÍiI	  ã                   ó¦  — d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 e j                  j                  dd«      Z e«       Z e	dd¬«      Z ee«      fd	efd
„Zd„ Zej                  d ee«      g¬«      dedefd„«       Zej)                  d ee«      g¬«      defd„«       Zej                  d ee«      g¬«       edd¬«      fdedefd„«       Zy)é    N)Ú	APIRouterÚDependsÚHTTPExceptionÚQueryÚSecurity)ÚAPIKeyHeaderÚAPI_KEYÚ z	X-API-KeyF)ÚnameÚ
auto_errorÚkeyc                 óV   — t         st        dd¬«      ‚| t         k7  rt        dd¬«      ‚y )Néô  z API_KEY not configured on server©Ústatus_codeÚdetaili“  zInvalid API key)r	   r   )r   s    ú9/root/rosshost/parking-map/parking-api/routers/parking.pyÚ_require_api_keyr      s-   € ÝÜ¨Ð4VÔWÐWØ
Œg‚~Ü¨Ð4EÔFÐFð ó    c                  ód   — t         j                  j                  dd«      } | st        dd¬«      ‚| S )NÚGOOGLE_MAPS_API_KEYr
   r   z"GOOGLE_MAPS_API_KEY not configuredr   )ÚosÚenvironÚgetr   )r   s    r   Ú_require_google_keyr      s/   € ÜŸ*™*Ÿ.™.Ð)>ÀÓCÐÙÜ¨Ð4XÔYÐYØÐr   z/geocode)ÚdependenciesÚlatÚlngc              ƒ   ó6  K  — t        «       }t        j                  «       4 ƒd{  –—† }|j                  d| › d|› �|dœ¬«      ƒ d{  –—† }|j	                  «        |j                  «       cddd«      ƒd{  –—†  S 7 ŒX7 Œ77 Œ	# 1 ƒd{  –—†7  sw Y   yxY w­w)u=   Proxy Google Geocoding API â€” returns the raw results array.Nz1https://maps.googleapis.com/maps/api/geocode/jsonú,)Úlatlngr   )Úparams©r   ÚhttpxÚAsyncClientr   Úraise_for_statusÚjson)r   r   r   ÚclientÚresps        r   Úgeocoder*      s—   è ø€ ô Ó
€CÜ× Ñ Ó"÷ ð  fØ—Z‘ZØ?Ø!$  Q s e˜n°SÑ9ð  ó 
÷ 
ˆð 	×ÑÔØ�y‰y‹{÷÷ ò øð
øðø÷ ÷ ñ üsV   ‚#B¥A>¦B©BÁB Á	#BÁ,BÁ8BÁ9BÂ BÂBÂBÂ
BÂBÂBz/autocompleteÚbodyc              ƒ   ó,  K  — t        «       }t        j                  «       4 ƒd{  –—† }|j                  dd|i| ¬«      ƒ d{  –—† }|j	                  «        |j                  «       cddd«      ƒd{  –—†  S 7 ŒS7 Œ77 Œ	# 1 ƒd{  –—†7  sw Y   yxY w­w)z%Proxy Google Places Autocomplete API.Nz4https://places.googleapis.com/v1/places:autocompleteúX-Goog-Api-Key)Úheadersr'   )r   r$   r%   Úpostr&   r'   )r+   r   r(   r)   s       r   Úautocompleter0   (   s�   è ø€ ô Ó
€CÜ× Ñ Ó"÷ ð  fØ—[‘[ØBØ% sÐ+Øð !ó 
÷ 
ˆð
 	×ÑÔØ�y‰y‹{÷÷ ò øð
øðø÷ ÷ ñ üsV   ‚#B¥A9¦B©A?ÁA;Á#A?Á'BÁ3A=Á4BÁ;A?Á=BÁ?BÂBÂBÂBz/places/{place_id}.z(Comma-separated Places API v1 field mask)ÚdescriptionÚplace_idÚfieldsc              ƒ   ó2  K  — t        «       }t        j                  «       4 ƒd{  –—† }|j                  d| › �||dœ¬«      ƒ d{  –—† }|j	                  «        |j                  «       cddd«      ƒd{  –—†  S 7 ŒV7 Œ77 Œ	# 1 ƒd{  –—†7  sw Y   yxY w­w)u<   Proxy Google Places API v1 â€” returns the raw place object.Nz(https://places.googleapis.com/v1/places/)r-   zX-Goog-FieldMask)r.   r#   )r2   r3   r   r(   r)   s        r   Ú	get_placer5   6   s—   è ø€ ô Ó
€CÜ× Ñ Ó"÷ 	ð 	 fØ—Z‘ZØ6°x°jÐAà"%Ø$*ñð  ó 
÷ 
ˆð 	×ÑÔØ�y‰y‹{÷	÷ 	ò 	øð
øð	ø÷ 	÷ 	ñ 	üsV   ‚#B¥A<¦B©BÁA>Á#BÁ*BÁ6B Á7BÁ>BÂ BÂBÂBÂ	BÂB)r   r$   Úfastapir   r   r   r   r   Úfastapi.securityr   r   r   r	   ÚrouterÚ_api_key_headerÚstrr   r   Úfloatr*   r/   Údictr0   r5   © r   r   ú<module>r>      s  ðÛ 	Û ß FÕ FÝ )à
�*‰*�.‰.˜ BÓ
'€á	‹€á K¸EÔB€ñ !)¨Ó 9ñ G˜#ó Gòð ‡�ˆJ¡gÐ.>Ó&?Ð%@€ÓAð	�uð 	 5ò 	ó Bð	ð ‡�ˆ_©GÐ4DÓ,EÐ+F€ÓGð
˜Tò 
ó Hð
ð ‡�Ð ±Ð8HÓ0IÐ/J€ÓKÙ16°sÐHrÔ1sñ ˜cð ¨3ò ó Lñr   