a
    Qx_                     @   sR   d dl mZ d dlmZmZ d dlmZ G dd deZG dd deZegZ	dS )	    )app_settings)ProviderAccountProviderException)OAuth2Providerc                       s   e Zd Z fddZ  ZS )QuickBooksAccountc                    sV   t t|  }| jjd|}| jjdd }| jjdd }|rR|rR|d | }|S )Nname	givenName
familyName )superr   to_strZaccount
extra_dataget)selfZdfltr   Z
first_name	last_name	__class__ k/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/quickbooks/provider.pyr   
   s    zQuickBooksAccount.to_str)__name__
__module____qualname__r   __classcell__r   r   r   r   r   	   s   r   c                   @   s8   e Zd ZdZdZeZdd Zdd Zdd Z	d	d
 Z
dS )QuickBooksOAuth2ProviderZ
quickbooksZ
QuickBooksc                 C   s   d|vrt d|t|d S )Nsubz	QBO error)r   strr   datar   r   r   extract_uid   s    
z$QuickBooksOAuth2Provider.extract_uidc                 C   s   g d}|   d|}|S )N)addressr   phoneNumberr   r	   emailemailVerifiedZPROFILE_FIELDS)Zget_settingsr   )r   Zdefault_fieldsfieldsr   r   r   get_profile_fields   s    	z+QuickBooksOAuth2Provider.get_profile_fieldsc                 C   s   g d}t jr|d |S )N)Zopenidz com.intuit.quickbooks.accountingZprofileZphoner!   )r   ZQUERY_EMAILappend)r   Zscoper   r   r   get_default_scope,   s    
z*QuickBooksOAuth2Provider.get_default_scopec              
   C   s@   t |d|d|d|d|d|d|ddS )	Nr!   r   r   r   r	   r"   r    )r!   r   r   r   ZfamilynNamer"   r    )dictr   r   r   r   r   extract_common_fields7   s    z.QuickBooksOAuth2Provider.extract_common_fieldsN)r   r   r   idr   r   Zaccount_classr   r$   r&   r(   r   r   r   r   r      s   r   N)
Zallauth.socialaccountr   Z$allauth.socialaccount.providers.baser   r   Z/allauth.socialaccount.providers.oauth2.providerr   r   r   Zprovider_classesr   r   r   r   <module>   s
   /