o
    ˳iR	                     @  s   d dl mZ d dlmZmZmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZmZ ddlmZmZ ddlmZmZ G d	d
 d
ZdS )    )annotations)AnyDictOptional)ClientHTTPStatusErrorQueryParamsResponse)	BaseModel)LiteralSelf   )API_VERSION_HEADER_NAMEAPI_VERSIONS_2024_01_01_NAME)handle_exception
model_dumpc                   @  sV   e Zd Zdddd)ddZd*ddZd+ddZd+ddZdddddddd,d'd(ZdS )-SyncGoTrueBaseAPITN)verifyproxyurlstrheadersDict[str, str]http_clientOptional[Client]r   boolr   Optional[str]returnNonec                C  s*   || _ || _|ptt||ddd| _d S )NT)r   r   follow_redirectshttp2)_url_headersr   r   _http_client)selfr   r   r   r   r    r%   W/home/ubuntu/.local/lib/python3.10/site-packages/supabase_auth/_sync/gotrue_base_api.py__init__   s   	zSyncGoTrueBaseAPI.__init__r   c                 C  s   | S Nr%   r$   r%   r%   r&   	__enter__    s   zSyncGoTrueBaseAPI.__enter__c                 C  s   |    d S r(   )close)r$   exc_texc_vexc_tbr%   r%   r&   __exit__#   s   zSyncGoTrueBaseAPI.__exit__c                 C  s   | j   d S r(   )r#   r+   r)   r%   r%   r&   r+   &   s   zSyncGoTrueBaseAPI.closeF)jwtredirect_tor   querybodyno_resolve_jsonmethodCLiteral['GET', 'OPTIONS', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE']pathr0   r1   Optional[Dict[str, str]]r2   Optional[QueryParams]r3   Optional[Any]r4   r	   c             
   C  s   | j  d| }	i | j|pi }t|vrt|t< d|vr!d|d< |r*d| |d< |p.t }|r7|d|}z| jj||	||t|t	rHt
|n|d}
|
  |
W S  ttfyd } zt|d }~ww )N/zContent-Typezapplication/json;charset=UTF-8zBearer Authorizationr1   )r   paramsjson)r!   r"   r   r   r   setr#   request
isinstancer
   r   raise_for_statusr   RuntimeErrorr   )r$   r5   r7   r0   r1   r   r2   r3   r4   r   responseer%   r%   r&   _request)   s2   
zSyncGoTrueBaseAPI._request)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )r   r   )r5   r6   r7   r   r0   r   r1   r   r   r8   r2   r9   r3   r:   r4   r   r   r	   )__name__
__module____qualname__r'   r*   r/   r+   rF   r%   r%   r%   r&   r      s    


r   N)
__future__r   typingr   r   r   httpxr   r   r   r	   pydanticr
   typing_extensionsr   r   	constantsr   r   helpersr   r   r   r%   r%   r%   r&   <module>   s    