U
    Wi                     @   s,   d dl mZmZ G dd deZdd ZdS )    )DictOptionalc                   @   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< eeef ddd	d
ZedddZ	eeef dddZ
dS )APIErrorz,
    Base exception for all API errors.
    
_raw_errormessagecodehintdetailsN)errorreturnc                 C   sJ   || _ |d| _|d| _|d| _|d| _t| t|  d S )Nr   r   r   r	   )	r   getr   r   r   r	   	Exception__init__str)selfr
    r   Z/home/afrizal/public_html/fastapi/venv/lib/python3.8/site-packages/postgrest/exceptions.pyr      s    zAPIError.__init__)r   c                 C   sv   | j rd| j  dnd}| jr*d| j nd}| jr@d| j nd}| jrVd| j nd}| | | | }|ptdS )NzError : z

Message: z
Hint: z

Details: zEmpty error)r   r   r   r	   )r   Z
error_textmessage_textZ	hint_textZdetails_textZ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   json#   s    zAPIError.json)__name__
__module____qualname____doc__r   r   __annotations__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   r   r    r   r   r   r   <module>   s   (