o
    hc                     @   s   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 deZdZdZdd Ze
dd Zdd ZdS )    N)md5)HttpResponseRedirect)reverse)	urlencode)csrf_exempt)get_adapter)complete_social_loginrender_authentication_error)SocialLoginSocialToken)DraugiemProvider   )	AuthErrorc                   @   s   e Zd ZdS )DraugiemApiErrorN)__name__
__module____qualname__ r   r   e/var/www/html/pos/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/draugiem/views.pyr      s    r   zhttps://api.draugiem.lv/jsonz!https://api.draugiem.lv/authorizec                 C   sb   t  | tj}| tt}t|j| 	d
 }|j||d}t|  tdtt|f S )Nzutf-8)apphashredirectz%s?%s)r   get_appr   idbuild_absolute_urir   callbackr   secretencode	hexdigest	client_idr
   stash_stater   AUTHORIZE_URLr   )requestr   redirect_urlredirect_url_hashparamsr   r   r   login   s   
r&   c              
   C   s   t  }|| tj}d| jvrt| |tjdS | jd dkr&t| |tjdS d| jvr3t| |tjdS d }d }z|j	}t
| || jd }t| |_t| |}W n tjtfyg } z|}W Y d }~nd }~ww |sqt| ||d}|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&   er   r   r   r   ,   s,   

r   c                 C   sv   t  | tj}t   td|j|d}|  |	 }d|v r(t
|d t||d d}|| |}||_|S )N	authorize)actionr   coder(   apikey)r   token)r   r,   r   r   get_requests_sessiongetACCESS_TOKEN_URLr   raise_for_statusjsonr   r   sociallogin_from_responser>   )r"   r   r<   r6   responseresponse_jsonr>   r&   r   r   r   r0   K   s    r0   )r3   hashlibr   django.httpr   django.urlsr   django.utils.httpr   django.views.decorators.csrfr   allauth.socialaccount.adapterr   allauth.socialaccount.helpersr   r	   allauth.socialaccount.modelsr
   r   1allauth.socialaccount.providers.draugiem.providerr   baser   	Exceptionr   rA   r!   r&   r   r0   r   r   r   r   <module>   s$    
