
    )Jf
                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d d	lmZmZ d
dlmZ ddlmZ  G d de          ZdZdZd Ze
d             Zd ZdS )    N)md5)HttpResponseRedirect)reverse)	urlencode)csrf_exempt)get_adapter)complete_social_loginrender_authentication_error)SocialLoginSocialToken   )	AuthError   )DraugiemProviderc                       e Zd ZdS )DraugiemApiErrorN)__name__
__module____qualname__     q/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/allauth/socialaccount/providers/draugiem/views.pyr   r      s        Dr   r   zhttp://api.draugiem.lv/jsonz http://api.draugiem.lv/authorizec                    t                                          | t          j                  }|                     t          t                              }t          |j        |z   	                    d                    
                                }|j        ||d}t          j        |            t          t          dt!          |                    S )Nzutf-8)apphashredirect?)r   get_appr   idbuild_absolute_urir   callbackr   secretencode	hexdigest	client_idr   stash_stater   AUTHORIZE_URLr   )requestr   redirect_urlredirect_url_hashparamss        r   loginr,      s    
--

)9)<
=
=C--gh.?.?@@LSZ,6>>wGGHHRRTT}!  F
 G$$$===)F:K:K:K LMMMr   c                 f   t                      }|                    | t          j                  }d| j        vrt          | |t          j                  S | j        d         dk    rt          | |t          j                  S d| j        vrt          | |t          j                  S d }d }	 |j	        }t          | || j        d                   }t          j        |           |_        t          | |          }n%# t          j        t"          f$ r}|}Y d }~nd }~ww xY w|st          | ||          }|S )Ndr_auth_status)errorokdr_auth_code)	exception)r   get_providerr   r   GETr
   r   UNKNOWNDENIEDr   draugiem_complete_loginr   unstash_statestater	   requestsRequestExceptionr   )r(   adapterproviderretauth_exceptionr   r,   es           r   r!   r!   )   sE   mmG##G-=-@AAHw{***7HIDUVVVV{#$,,*7HIDTUUUUW[((*7HIDUVVVV
CNl'gk.6QRR!/88#GU33%'78     W)'8~VVVJs   +AC8 8DDDc                    t                                          | t          j                  }t                                                                          t          d|j        |d          }|                                 |	                                }d|v rt          |d                   t          ||d                   }|                    | |          }||_        |S )N	authorize)actionr   coder/   apikey)r   token)r   r3   r   r   get_requests_sessiongetACCESS_TOKEN_URLr"   raise_for_statusjsonr   r   sociallogin_from_responserF   )r(   r   rD   r=   responseresponse_jsonrF   r,   s           r   r7   r7   H   s    }}))'3C3FGGH					"3:tDD

 

  MMOOM-}W5666C}X'>???E..wFFEEKLr   )r:   hashlibr   django.httpr   django.urlsr   django.utils.httpr   django.views.decorators.csrfr   allauth.socialaccount.adapterr   allauth.socialaccount.helpersr	   r
   allauth.socialaccount.modelsr   r   baser   r=   r   	Exceptionr   rI   r'   r,   r!   r7   r   r   r   <module>rY      s^          , , , , , ,       ' ' ' ' ' ' 4 4 4 4 4 4 5 5 5 5 5 5        B A A A A A A A       & & & & & &	 	 	 	 	y 	 	 	 1 2
N 
N 
N   <    r   