
    YFi	                     ,   d dl mZmZmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d dlmZ dd	gdd
dfdededededee   dee   dededefdZdededefdZdededefdZdededefdZdedededefdZdededeeef   fdZy)    )AnyDictListOptionalTupleUnion)HTTPExceptionstatus)Session)User)user_repository)UserCreateSchemaUserUpdateSchema)UserResponseSchemaNz-created_atF dbskiplimitfieldssort_bysearchpaginatepagination_urlreturnc           
      \   K   t        j                  | ||||||d       d {   }|S 7 w)NT)r   r   r   r   r   r   r   use_orm)r   get_list)	r   r   r   r   r   r   r   r   userss	            L/var/www/html/BankruptcyAI-uat/bankruptcy-ai/src/modules/users/controller.py
list_usersr       sA      "**%	 	E L	s   !,*,payloadc                    K   t        j                  | |       d {   }|r|S t        t        j                  d      7 #w)N)r   r!   zFailed to create userstatus_codedetail)r   create_userr	   r
   HTTP_400_BAD_REQUEST)r   r!   users      r   r&   r&   #   sB      ,,GDDD
//8O  Es   AA$Auser_idc                 |   K   t        j                  | |      \  }}|r|S t        t        j                  |      w)Nr   _idr#   )r   getr	   r
   HTTP_404_NOT_FOUND)r   r)   r(   msgs       r   get_user_by_idr0   ,   s7     ##rw7ID#
F$=$=c
JJ   :<emailc                 |   K   t        j                  | |      \  }}|r|S t        t        j                  |      w)N)r   name_inr#   )r   get_by_namer	   r
   r.   )r   r2   r(   r/   s       r   get_user_by_emailr6   3   s7     ++r5AID#
F$=$=c
JJr1   c                    K   t        j                  | |      }|st        t        j                  d      t        j
                  | ||      }|r|S t        t        j                  d      w)Nr+   User not foundr#   )r   	object_idr!   zFailed to update user)r   get_rawr	   r
   r.   update_by_idr'   )r   r)   r!   r(   updated_users        r   update_userr=   :   ss      ""bg6D11:J
 	
 #//'L 
//8O s   A,A.c                 z   K   t        j                  | |      }|rddiS t        t        j                  d      w)Nr+   r%   zUser deletedr8   r#   )r   remover	   r
   r.   )r   r)   r(   s      r   delete_userr@   L   s:     !!RW5D.))
F$=$=FV
WWs   9;)typingr   r   r   r   r   r   fastapir	   r
   sqlalchemy.ormr   src.database.models.usersr   #src.modules.users.repositories.userr   "src.modules.users.schemas.requestsr   r   #src.modules.users.schemas.responsesr   intstrboolr    r&   r0   r6   r=   r@        r   <module>rM      s8   : : ) " * ? Q B ' 
  	
 #Y SM   
.' ,< AS KW Ks K7I KK K K8J K(8$X' XC XDcN XrL   