
    f
                         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y)    N)md5)HttpResponseRedirect)reverse)	urlencode)csrf_exempt)get_adapter)complete_social_loginrender_authentication_error)SocialLoginSocialToken   )	AuthError   )DraugiemProviderc                       e Zd Zy)DraugiemApiErrorN)__name__
__module____qualname__     i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/draugiem/views.pyr   r      s    r   r   zhttp://api.draugiem.lv/jsonz http://api.draugiem.lv/authorizec                 |   t               j                  | t        j                        }| j	                  t        t                    }t        |j                  |z   j                  d            j                         }|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SZZ,6>>wGHRRT}}! F
 G$=)F:K LMMr   c                 p   t               }|j                  | t        j                        }d| j                  vrt        | |t        j                        S | j                  d   dk7  rt        | |t        j                        S d| j                  vrt        | |t        j                        S d }d }	 |j                  }t        | || j                  d         }t        j                  |       |_        t        | |      }|st        | ||      }|S # t        j                   t"        f$ r}|}Y d }~2d }~ww xY w)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!   )   s   mG##G-=-@-@AHw{{**7HIDUDUVV{{#$,*7HIDTDTUUW[[(*7HIDUDUVV
CNll'gkk.6QR!//8#GU3 )'8~VJ %%'78 s   2AD D5)D00D5c                    t               j                  | t        j                        }t               j	                         j                  t        d|j                  |d      }|j                          |j                         }d|v rt        |d         t        ||d         }|j                  | |      }||_        |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    }))'3C3F3FGH				"3::tD

  MMOM-}W566C}X'>?E..w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      sc      ,  ' 4 5 B  &	y 	 1 2
N  <r   