o
    Lf                     @   sp   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	 ddl
mZmZ G dd deZe	eZeeZd	S )
    )app_settings)get_adapter)OAuth2Error)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )ScopeSnapchatProviderc                   @   s.   e Zd ZejZdZdZdZdd Z	dd Z
dS )	SnapchatOAuth2Adapterz3https://accounts.snapchat.com/accounts/oauth2/tokenz2https://accounts.snapchat.com/accounts/oauth2/authzhttps://api.snapkit.com/v1/mec                 K   s   |  |j}|  ||S )N)get_datatokenget_providersociallogin_from_response)selfrequestappr   kwargs
extra_data r   o/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/snapchat/views.pycomplete_login   s   z$SnapchatOAuth2Adapter.complete_loginc                 C   s   t j}tj|i }|dd}d| dd}tj|v r!ddi}nddi}t  j	| j
||d	}|  | }|d
sAt |S )NSCOPEzs['https://auth.snapchat.com/oauth2/api/user.external_id', 'https://auth.snapchat.com/oauth2/api/user.display_name']zBearer zapplication/json;charset=UTF-8)AuthorizationzContent-Typequeryz7{ me { externalId displayName bitmoji { avatar id } } }z!{ me { externalId displayName } })headersjsondata)r
   idr   	PROVIDERSgetr	   BITMOJIr   get_requests_sessionpostidentity_urlraise_for_statusr   r   )r   r   provider_idsettingsprovider_scopehedr   respr   r   r   r      s,   



zSnapchatOAuth2Adapter.get_dataN)__name__
__module____qualname__r
   r   r&   access_token_urlauthorize_urlr$   r   r   r   r   r   r   r      s    r   N)allauth.socialaccountr   allauth.socialaccount.adapterr   -allauth.socialaccount.providers.oauth2.clientr   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   providerr	   r
   r   adapter_viewoauth2_loginoauth2_callbackr   r   r   r   <module>   s    
)