o
    Zh                     @   s  d dl 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mZmZmZ d dlmZ e Zejdeeef d	eejee
fd
edeeef dejdefddZejdeeef d	d ddeejee
fd
edededee dejdefddZejdeeef d	eejee
fd
ededejdefddZejdeeef d	eejee
fd
ededeeef dejdef
ddZej deeef d	eejee
fd
ededejdefddZ!dS )    )	APIRouterHTTPExceptionDepends)AnyDict)database)get_current_userdetails)User)create_item_serviceget_items_serviceget_item_serviceupdate_item_servicedelete_item_service)Optionalz/{collection_name})response_modelcollection_namepayloaddbcurrent_userc              
   C   sj   z
t | |||}|W S  ty } ztdt|dd }~w ty4 } ztddt| dd }~ww Ni  status_codedetaili  zInternal server error: )r
   
ValueErrorr   str	Exception)r   r   r   r   created_itemvee r   //var/www/html/moveengine/app/v1/routers/crud.pycreate_generic_item   s   r!   
   Nskiplimitstatusc                 C   s   t | |||||}|S )N)r   )r   r#   r$   r%   r   r   resultr   r   r    list_generic_items!   s   	r'   z/{collection_name}/{item_id}item_idc                 C   &   t | |||}|d u rtddd|S Ni  zItem not foundr   )r   r   )r   r(   r   r   itemr   r   r    get_generic_item.      r,   c              
   C   sl   zt | ||||}|W S  ty } ztdt|dd }~w ty5 } ztddt| dd }~ww r   )r   r   r   r   r   )r   r(   r   r   r   updated_itemr   r   r   r   r    update_generic_item;   s   r/   c                 C   r)   r*   )r   r   )r   r(   r   r   deleted_itemr   r   r    delete_generic_itemL   r-   r1   )"fastapir   r   r   typingr   r   app.dbr   app.v1.dependencies.authr   app.v1.models.saas.usersmodelr	   app.v1.services.crudr
   r   r   r   r   r   routerpostr   get_mongo_dbMongoDBr!   getintr'   r,   putr/   deleter1   r   r   r   r    <module>   s    

