
    \Fe                        d dl mZmZmZ d dlZd dlZd dlZd dlZd dlZd dl	m
Z
 ddlmZmZmZmZ  e       Z eddgdd	d
ii      Z ej$                  d      Zd Zej+                  d      ddedededededededededefd       Zy)    )	APIRouterRequestHTTPExceptionN)uuid4   )MONGODB_DATABASEmongodb_connectcheck_accessget_user_subz/exploreexplore  descriptionz	Not found)prefixtags	responsesAMADEUS_API_URLc                     | d   d   | d   d   | d   d   | d   d   | d   d   d| d   d   | d	   | d
   | d   | d   || d   d   | d   d   dd	}|S )Nsummary_infosPROPERTY_NAMEADDRESS_LINE1CITY2COUNTRY_CODEZIP_CODE)line1citycountryzip_codePHONEr   imageroom_imagesroom_descriptionLATITUDE	LONGITUDE)latlong)	nameaddressphoner   imagesr    r!   codegps )hotelr*   formated_hotels      QC:\Users\ChattiNader\Documents\EpsilonGroupe\api-vastappli\app\routers\explore.pyformat_hotelr0      s    o&7?+O</*73_-n=o.z:	
 '0]+.]+!"45)*5/*;7
N&     /requestprofile_substartendr   adultschildsroomsmax_responsepaging_tokenc
                   K   | j                   d   j                  d      d   }
t        |
d       t        |
      }	 t        t
           d   j                  ||dddi      }|st        d	d
      t         d}t        j                  ||
ddt        j                  |||t        |      t        |      t        |      t        |      dd            }|j                  d	k(  r%t        |j                  |j                               |j                         }|d   dk(  rt        d|d         g }|d   d   D ]  }|j                  |d   d           t!        j"                  d      dz   }g }|D ]^  }	 t        t
           d   j                  d|iddd      }|r>t        t
           d    j                  d!|d!   iddi      }||d"<   |j                  |       jt+               }t        |      }	 t        t
           d   j-                  ||d#       t        j                  ||
ddt        j                  |||d%d&            }|j                  d	k(  r%t        |j                  |j                               |j                         }t/        |d   |      }||d!<   	 t        t
           d    j-                  |       |j                  |       a ||d'   d(   t0        j0                  j3                         j5                         |d)}|S # t$        j&                  j(                  $ r}t        dd|       d}~ww xY w# t$        j&                  j(                  $ r}t        dd$|       d}~ww xY w# t$        j&                  j(                  $ r}t        dd$|       d}~ww xY w# t6        $ r}t        dd*|       d}~ww xY ww)+zGet hotels within the MHM app.authorization    GetExploreHotelListprofile)r4   user_sub_idr   r   zUThe profile you are trying to explore hotels from does not exist or you don't own it.)status_codedetailz/amadeus/availabilityzapplication/json)AuthorizationzContent-Type8)cityCodecheckInDatecheckOutDater7   r8   r9   maxResponsescategoryCode)headersdatastatuserrori  message	HotelStayBasicPropertyInfoz
@HotelCoder   z/amadeus/descriptive_inforefactor_hotelsamadeus)rC   subzError while retrieving hotel: Nhotels_datarV   r*   )rV   rU   zError while inserting hotel: )r5   r6   )	HotelCodeAvailabilityDatessummarypagingToken)r4   r;   	timestamphotelszError while retrieving hotels: )rM   splitr
   r   mongodb_clientr   find_oner   r   requestspostjsondumpsstrrD   appendosgetenvpymongoerrorsOperationFailurer   
insert_oner0   datetimeutcnow	isoformat	Exception)r3   r4   r5   r6   r   r7   r8   r9   r:   r;   
auth_tokenmy_subrA   urlramadeus_responsehotels_codesr-   hotels_infosr*   mongodb_hotele1hotel_contentrV   e2informations_responser.   e3	retObjectes                                 r/   r   r   +   s1     177<Q?J23*%Fb[ !129=FFWbpvGwz  BC  zD  EC  9P  Q  Q !!67MM#'.(
 ZZ &k&kZ-	
 		 ==CAMM!&&(KK668H%0C8H8STT%i0= 	JE&9 :< HI	J ii)*-HH  9	4Dc ./? @AR S \ \!4 +!-  ./? @ O X X=/Z1:! )-f%##M2g#hf"#345FGRR"#'T  MM)3(: )-).'*2  ==C''AMM!&&(SS()%!-.CI.NPT!U(+u%f"#34]CNN~^ ##N3s9	4v ',Y7F!**113==?"	
	 s >>22 c#>\]_\`<abbc& ~~66 f'CB_`b_c@deef8 ~~66 f'CB_`b_c@deef  [6UVWUX4YZZ[s   9OD:N, 7%LAN, 2"MBN, !M7 AN, OL?*L::L??N, M4M//M44N, 7N)N$$N))N, ,	O
5OO

O)
   N)fastapir   r   r   rg   ra   rc   ri   rm   uuidr   utilsr   r	   r
   r   r_   routerrh   r   r0   getre   intr   r,   r1   r/   <module>r      s    5 5 	      Q Q "	
]K01
 "))-.. Cg[7 g[ g[C g[c g[QT g[^a g[kn g[wz g[  KN g[  cf g[ g[r1   