a
    Qx_                     @   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)	providers)complete_social_loginrender_authentication_error)SocialLoginSocialToken   )	AuthError   )DraugiemProviderc                   @   s   e Zd ZdS )DraugiemApiErrorN)__name__
__module____qualname__ r   r   f/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/draugiem/views.pyr      s   r   zhttp://api.draugiem.lv/jsonz http://api.draugiem.lv/authorizec                 C   sh   t jtj| | }| tt}t	|j
| d }|j||d}t|  tdtt|f S )Nzutf-8)apphashZredirectz%s?%s)r   registryby_idr   idget_appZbuild_absolute_urir   callbackr   secretencode	hexdigestZ	client_idr
   Zstash_stater   AUTHORIZE_URLr   )requestr   Zredirect_urlZredirect_url_hashparamsr   r   r   login   s    
r#   c              
   C   s   d| j vrt| tjtjdS | j d dkr<t| tjtjdS d| j vrXt| tjtjdS d }d }zBtj	tj| 
| }t| || j d }t| |_t| |}W n. tjtfy } z|}W Y d }~n
d }~0 0 |st| tj|d}|S )NZdr_auth_status)errorokZdr_auth_code)	exception)GETr	   r   r   r   UNKNOWNZDENIEDr   r   r   r   draugiem_complete_loginr
   Zunstash_statestater   requestsZRequestExceptionr   )r!   retZauth_exceptionr   r#   er   r   r   r   )   s4    




r   c                 C   sp   t jtj| }ttd|j|d}|	  |
 }d|v rJt|d t||d d}|| |}||_|S )NZ	authorize)actionr   coder$   Zapikey)r   token)r   r   r   r   r   r+   getACCESS_TOKEN_URLr   Zraise_for_statusjsonr   r   Zsociallogin_from_responser0   )r!   r   r/   providerresponseZresponse_jsonr0   r#   r   r   r   r)   M   s    r)   )r+   Zhashlibr   Zdjango.httpr   Zdjango.urlsr   Zdjango.utils.httpr   Zdjango.views.decorators.csrfr   Zallauth.socialaccountr   Zallauth.socialaccount.helpersr   r	   Zallauth.socialaccount.modelsr
   r   baser   r4   r   	Exceptionr   r2   r    r#   r   r)   r   r   r   r   <module>   s"   
#