o
    ¡6U-  ã                   @   s    d dl Z d dlmZ d dlZd dlmZ e  e¡ZG dd„ de	ƒZ
G dd„ de	ƒZdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zddd„Zdd„ Zdd„ ZdS )é    N)Úsettings)ÚUserSocialAuthc                   @   ó   e Zd ZdS )ÚAccessTokenNotFoundN©Ú__name__Ú
__module__Ú__qualname__© r
   r
   úM/var/www/html/env/lib/python3.10/site-packages/django_mailbox/google_utils.pyr      ó    r   c                   @   r   )ÚRefreshTokenNotFoundNr   r
   r
   r
   r   r      r   r   c                   C   ó   t jS ©N)r   ÚSOCIAL_AUTH_GOOGLE_OAUTH2_KEYr
   r
   r
   r   Úget_google_consumer_key   ó   r   c                   C   r   r   )r   Ú SOCIAL_AUTH_GOOGLE_OAUTH2_SECRETr
   r
   r
   r   Úget_google_consumer_secret   r   r   c              	   C   ó6   zt jj| dd�}|jd W S  t jtfy   t‚w )Núgoogle-oauth2©ÚuidÚproviderÚaccess_token)r   ÚobjectsÚgetÚ
extra_dataÚDoesNotExistÚKeyErrorr   ©ÚemailÚmer
   r
   r   Úget_google_access_token   s   ÿr#   c              	   C   s>   zt jj| dd�}||_| ¡  W d S  t jtfy   t‚w )Nr   r   )r   r   r   r   Úsaver   r   r   )r!   r   r"   r
   r
   r   Úupdate_google_extra_data$   s   ÿr%   c              	   C   r   )Nr   r   Úrefresh_token)r   r   r   r   r   r   r   r    r
   r
   r   Úget_google_refresh_token-   s   ÿr'   c                 C   sŽ   t dt| ƒ d�}tj||d�}t d|j¡ |jdkr.t| ƒ tj||d�}t d|j¡ |jdkrEz| ¡ W S  t	yD   |j
 Y S w d S )Nú	Bearer %s©ÚAuthorization)Úheadersz
I got a %sé‘  éÈ   )Údictr#   Úrequestsr   ÚloggerÚinfoÚstatus_codeÚrefresh_authorizationÚjsonÚ
ValueErrorÚtext)r!   Úurlr+   Úrr
   r
   r   Úgoogle_api_get5   s    
ÿ



ÿýr9   Tc                 C   sŠ   t ƒ }|du r| t dt| ƒ d�¡ tj|||d�}|jdkr,t| ƒ tj|||d�}|jdkrCz| ¡ W S  tyB   |j	 Y S w d S )NTr(   r)   )r+   Údatar,   r-   )
r.   Úupdater#   r/   Úpostr2   r3   r4   r5   r6   )r!   r7   Ú	post_dataÚ
authorizedr+   r8   r
   r
   r   Úgoogle_api_postG   s    
ÿ



ÿýr?   c                 C   sH   t | ƒ}t|tƒ tƒ dd�}t| d|dd�}| d|i¡ t| |ƒ d S )Nr&   )r&   Ú	client_idÚclient_secretÚ
grant_typez>https://accounts.google.com/o/oauth2/token?access_type=offlineF)r>   )r'   r.   r   r   r?   r;   r%   )r!   r&   r=   Úresultsr
   r
   r   r3   Y   s   üür3   c                 C   s   t | dƒ}|S )Nz6https://www.googleapis.com/oauth2/v1/userinfo?alt=json)r9   )r!   Úresultr
   r
   r   Úfetch_user_infoj   s
   þrE   )T)ÚloggingÚdjango.confr   r/   Ú%social.apps.django_app.default.modelsr   Ú	getLoggerr   r0   Ú	Exceptionr   r   r   r   r#   r%   r'   r9   r?   r3   rE   r
   r
   r
   r   Ú<module>   s     
		
