o
    ˷e                     @   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 }|r)|r)|d | }|S )Nname	givenName
familyName )superr   to_straccount
extra_dataget)selfdfltr   
first_name	last_name	__class__ j/var/www/ideatree/venv/lib/python3.10/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 )QuickBooksOAuth2Provider
quickbooks
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emailVerifiedPROFILE_FIELDS)get_settingsr   )r   default_fieldsfieldsr   r   r   get_profile_fields   s   	z+QuickBooksOAuth2Provider.get_profile_fieldsc                 C   s   g d}t jr|d |S )N)openidz com.intuit.quickbooks.accountingprofilephoner&   )r   QUERY_EMAILappend)r   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   familynNamer'   r%   )dictr   r!   r   r   r   extract_common_fields7   s   z.QuickBooksOAuth2Provider.extract_common_fieldsN)r   r   r   idr   r   account_classr#   r,   r3   r6   r   r   r   r   r      s    r   N)
allauth.socialaccountr   $allauth.socialaccount.providers.baser   r   /allauth.socialaccount.providers.oauth2.providerr   r   r   provider_classesr   r   r   r   <module>   s    
/