o
    &zh                     @   sT   d dl mZ d dlmZmZmZ ddlmZ G dd deZe	eZ
e	eZdS )    )get_adapter)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )DingTalkOAuth2Clientc                       s8   e Zd ZdZdZdZdZeZ fddZ	dd Z
  ZS )	DingTalkOAuth2Adapterdingtalkz4https://api.dingtalk.com/v1.0/oauth2/userAccessTokenz&https://login.dingtalk.com/oauth2/authz.https://api.dingtalk.com/v1.0/contact/users/mec                    s>   d|j v rd|j _|j d |j d< d|j _tt| | d S )NauthCodeTcodeF)GET_mutablesuperr   __init__)selfrequest	__class__ i/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/dingtalk/views.pyr      s
   
zDingTalkOAuth2Adapter.__init__c                 K   s@   d|j i}t  j| j|d}|  | }|  ||S )Nzx-acs-dingtalk-access-token)headers)	tokenr   get_requests_sessiongetprofile_urlraise_for_statusjsonget_providersociallogin_from_response)r   r   appr   kwargsr   resp
extra_datar   r   r   complete_login   s   
z$DingTalkOAuth2Adapter.complete_login)__name__
__module____qualname__provider_idaccess_token_urlauthorize_urlr   r   client_classr   r#   __classcell__r   r   r   r   r      s    	r   N)allauth.socialaccount.adapterr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   clientr   r   adapter_viewoauth2_loginoauth2_callbackr   r   r   r   <module>   s    
