o
    ˳id                     @   sL   d dl mZmZmZ d dlmZ G dd deZG dd deZdd Z	d	S )
    )AnyDictOptional)	BaseModelc                   @   sH   e Zd ZU dZee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )APIErrorFromJSONzT
    A pydantic object to validate an error info object
    from a json string.
    messagecodehintdetailsN)__name__
__module____qualname____doc__r   str__annotations__ r   r   H/home/ubuntu/.local/lib/python3.10/site-packages/postgrest/exceptions.pyr      s   
 r   c                   @   s   e Zd ZU dZeeef ed< ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 deeef dd	fd
dZ	defddZ
deeef fddZd	S )APIErrorz,
    Base exception for all API errors.
    
_raw_errorr   r   r	   r
   errorreturnNc                 C   sJ   || _ |d| _|d| _|d| _|d| _t| t|  d S )Nr   r   r	   r
   )	r   getr   r   r	   r
   	Exception__init__r   )selfr   r   r   r   r   %   s   zAPIError.__init__c                 C   sv   | j r
d| j  dnd}| jrd| j nd}| jr d| j nd}| jr+d| j nd}| | | | }|p:dS )NzError : z

Message: z
Hint: z

Details: zEmpty error)r   r   r	   r
   )r   
error_textmessage_text	hint_textdetails_textcomplete_error_textr   r   r   __repr__-   s   zAPIError.__repr__c                 C   s   | j S )zYConvert the error into a dictionary.

        Returns:
            :class:`dict`
        )r   )r   r   r   r   json5   s   zAPIError.json)r   r   r   r   r   r   r   r   r   r   r"   r#   r   r   r   r   r      s   
 r   c                 C   s   d| j dt| jdS )NzJSON could not be generatedz!Refer to full message for details)r   r   r	   r
   )status_coder   content)rr   r   r   generate_default_error_message>   s
   r'   N)
typingr   r   r   pydanticr   r   r   r   r'   r   r   r   r   <module>   s
    (