o
    	h<                     @   sD  d dl mZmZ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 eddgdZd	d
 Zejdee deefdefddZd dlmZ ejdeejdeefdedefddZejdedeefdedefddZejdedeefdededefddZejdejdeefdedefddZdS )    )	APIRouterHTTPExceptionstatusDepends)Session)SessionLocal)Client)r   ClientCreatez/clientsclients)prefixtagsc                  c   s(    t  } z
| V  W |   d S |   w N)r   closedb r   )C:\MealPlanner\backend\routers\clients.pyget_db	   s
   r   /)response_modelr   c                 C   s   |  t S r   )queryr   allr   r   r   r   list_clients   s   r   )IntegrityError)r   status_codeclientc                 C   sV   t | j| jd}|| z|  || |W S  ty*   |  tdddw )N)nameemaili  u   Email già esistenter   detail)	r   r   r   addcommitrefreshr   Zrollbackr   )r   r   	db_clientr   r   r   create_client   s   

r$   z/{client_id}	client_idc                 C   s.   | ttj| k }|stddd|S Ni  zCliente non trovator   )r   r   filteridfirstr   )r%   r   r   r   r   r   
get_client"   s   r*   c                 C   sP   | ttj| k }|stddd|j|_|j|_|  |	| |S r&   )
r   r   r'   r(   r)   r   r   r   r!   r"   )r%   r   r   r#   r   r   r   update_client)   s   
r+   )r   c                 C   s@   | ttj| k }|stddd|| |  d S r&   )r   r   r'   r(   r)   r   deleter!   )r%   r   r#   r   r   r   delete_client4   s   
r-   N)fastapir   r   r   r   Zsqlalchemy.ormr   Zdatabaser   modelsr   schemasZClientSchemar	   routerr   getlistr   Zsqlalchemy.excr   postHTTP_201_CREATEDr$   intr*   putr+   r,   HTTP_204_NO_CONTENTr-   r   r   r   r   <module>   s$     
 