
    =h;                         d dl mZ d dlmZmZ d dlmZ  G d de      Z G d de      Z G d d	e      Z	 G d
 de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )Optional)HTTPExceptionstatus)Messagec                   F     e Zd Zdej                  fdededef fdZ xZS )AlreadyExistsExceptionN
class_namemessagestatus_codec                 f    t         |   ||xs t        j                  j                  |z         y Nr   detail)super__init__r   ErrorALREADY_EXISTselfr	   r
   r   	__class__s       >/var/www/html/phonemate/phone_mate_backend/utils/exceptions.pyr   zAlreadyExistsException.__init__	   s1     	#Fgmm99JF 	 	
    	__name__
__module____qualname__r   HTTP_400_BAD_REQUESTstrintr   __classcell__r   s   @r   r   r      s7      %::		
	
 	
 		
 	
r   r   c                   H     e Zd Zddej                  fdededef fdZ xZS )InvalidExceptionNr	   r
   r   c                 f    t         |   ||xs t        j                  j                  |z         y r   )r   r   r   r   INVALIDr   s       r   r   zInvalidException.__init__   s1     	#@gmm33j@ 	 	
r   r   r!   s   @r   r#   r#      s:     #%::		
	
 	
 		
 	
r   r#   c            	       L     e Zd Zddej                  fdedededef fdZ xZS )NotFoundExceptionNr	   	entity_idr
   r   c                     t         |   ||xsG |s#t        j                  j                  |z         y | d| dt        j                  j
                          y )N r   )r   r   r   r   	NOT_FOUNDNOT_FOUND_WITH_ID)r   r	   r(   r
   r   r   s        r   r   zNotFoundException.__init__"   s{     	# J<E''*4 	 	
 OY\YZ[dZeefgngtgt  hG  hG  gH  LI 	 	
r   )	r   r   r   r   HTTP_404_NOT_FOUNDr   r   r   r    r!   s   @r   r'   r'   !   sD     "%88

 
 	

 
 
r   r'   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )UnauthorizedExceptionr
   r   c                 (    t         |   ||       y r   r   r   r   r
   r   r   s      r   r   zUnauthorizedException.__init__1       
 	# 	 	
r   )r   r   r   r   r   AUTHORIZATION_FAILr   HTTP_401_UNAUTHORIZEDr   r   r   r    r!   s   @r   r/   r/   0   s7     #==;;%;;

 
 
r   r/   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )AuthenticationErrorr
   r   c                 (    t         |   ||       y r   r1   r2   s      r   r   zAuthenticationError.__init__=   r3   r   )r   r   r   r   r   JWT_WRONG_TOKEN_ERRORr   r5   r   r   r   r    r!   s   @r   r7   r7   <   s7     #==>>%;;

 
 
r   r7   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )AuthorizationErrorr
   r   c                 (    t         |   ||       y r   r1   r2   s      r   r   zAuthorizationError.__init__I   r3   r   )r   r   r   r   r   UNAUTHORIZEDr   HTTP_403_FORBIDDENr   r   r   r    r!   s   @r   r;   r;   H   s7     #==55%88

 
 
r   r;   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )AccountLockedErrorr
   r   c                 (    t         |   ||       y r   r1   r2   s      r   r   zAccountLockedError.__init__U   r3   r   )r   r   r   r   r   ACCOUNT_LOCKEDr   HTTP_423_LOCKEDr   r   r   r    r!   s   @r   r@   r@   T   s7     #==77%55

 
 
r   r@   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )DatabaseErrorr
   r   c                 (    t         |   ||       y r   r1   r2   s      r   r   zDatabaseError.__init__a   r3   r   )r   r   r   r   r   DB_OPERATION_FAILEDr   HTTP_500_INTERNAL_SERVER_ERRORr   r   r   r    r!   s   @r   rE   rE   `   s7     #==<<%DD

 
 
r   rE   c                   j     e Zd Zej                  j
                  ej                  fdede	f fdZ
 xZS )ValidationErrorr
   r   c                 (    t         |   ||       y r   r1   r2   s      r   r   zValidationError.__init__m   r3   r   )r   r   r   r   r   VALIDATION_ERRORr   HTTP_422_UNPROCESSABLE_ENTITYr   r   r   r    r!   s   @r   rJ   rJ   l   s7     #==99%CC

 
 
r   rJ   N)typingr   fastapir   r   utils.messagesr   r   r#   r'   r/   r7   r;   r@   rE   rJ    r   r   <module>rR      sz     ) "

] 



} 


 
	
M 	
	
- 	
	
 	
	
 	
	
M 	
	
m 	
r   