
    Ph
                         d Z ddlmZmZmZmZmZmZmZ ddl	m
Z
mZ  ede      Zej                  dddg      d	        Zej                  d
dg      d        Zej                  dddg      d        Zy)z"
Google OAuth routes for SQLGenAI
    )	Blueprintrequestredirecturl_forjsonifysessioncurrent_app)get_google_auth_urlhandle_google_callbackgoogle_authz/auth/google/loginGETOPTIONS)methodsc                  h    t         j                  dk(  ryt               } t        d| d   | d   d      S )z Initiate Google OAuth login flowr       Turlstate)successauth_urlr   )r   methodr
   r   )	auth_datas    '/var/www/html/app/auth/google_routes.pygoogle_loginr   
   sD     ~~" $%I e$7#      z/auth/google/callbackc                     t         j                  j                  d      } t         j                  j                  d      }| r|s!t        j                  d   }t        | d      S t        | |      }t        |t              r|j                  d      sMt        |t              r|d   d   n|j                  dd      }t        j                  d   }t        | d	|       S |d
   }t        j                  d   }t        | d|       S )zHandle Google OAuth callbackcoder   FRONTEND_URLz0/login?error=Missing+authorization+code+or+stater   r   messagezAuthentication failedz/login?error=tokenz/auth-callback?token=)
r   argsgetr	   configr   r   
isinstancedicttuple)r   r   frontend_urlresulterror_messager!   s         r   google_callbackr+      s     <<F#DLLW%Eu")).9<.(XYZZ $D%0Ffd#6::i+@0:650Iq	),vzzZce|O}")).9<.m_EFF 7OE%%n5L|n$9%ABBr   z/auth/google/tokenPOSTc                     t         j                  dk(  ryt        j                         } | rd| vsd| vrt        ddd      dfS t	        | d   | d         }t        |t              r|\  }}t        |      |fS t        |      S )	z%Exchange authorization code for tokenr   r   r   r   FzMissing code or state)r   r    i  )r   r   get_jsonr   r   r%   r'   )datar)   responsestatus_codes       r   google_tokenr2   5   s     ~~" D6%)<.
   	 $DL$w-@F&%  &+x +-- 6?r   N)__doc__flaskr   r   r   r   r   r   r	   app.auth.google_authr
   r   __name__	google_bprouter   r+   r2    r   r   <module>r:      s    W V V L mX.	
%y/AB C  (5':C ;C2 %	/BC Dr   