o
    	h                     @   s  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
mZ d dlm
ZmZ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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ejdee deefdefdd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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)FoodFoodCategory)r   
FoodCreater	   FoodCategoryCreatez/foodsfoods)prefixtagsc                  c   s(    t  } z
| V  W |   d S |   w N)r   closedb r   'C:\MealPlanner\backend\routers\foods.pyget_db	   s
   r   /)response_modelr   c                 C      |  t S r   )queryr   allr   r   r   r   
list_foods      r   )r   status_codefoodc                 C   s2   t di |  }|| |  || |S )Nr   )r   dictaddcommitrefresh)r   r   db_foodr   r   r   create_food   s
   

r$   z
/{food_id}food_idc                 C   s.   | ttj| k }|stddd|S N  zAlimento non trovator   detail)r   r   filteridfirstr   )r%   r   r   r   r   r   get_food   s   r-   c                 C   sb   | ttj| k }|stddd|  D ]
\}}t||| q|	  |
| |S r&   )r   r   r*   r+   r,   r   r   itemssetattrr!   r"   )r%   r   r   r#   keyvaluer   r   r   update_food#   s   
r2   )r   c                 C   @   | 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_food.      
r5   z/categories/c                 C   r   r   )r   r	   r   r   r   r   r   list_categories8   r   r7   categoryc                 C   s,   t | jd}|| |  || |S )N)name)r	   r9   r    r!   r"   )r8   r   db_catr   r   r   create_category<   s
   

r;   z/categories/{category_id}category_idc                 C   sH   | ttj| k }|stddd|j|_|  || |S Nr'   zCategoria non trovatar(   )	r   r	   r*   r+   r,   r   r9   r!   r"   )r<   r8   r   r:   r   r   r   update_categoryD   s   
r>   c                 C   r3   r=   )r   r	   r*   r+   r,   r   r4   r!   )r<   r   r:   r   r   r   delete_categoryN   r6   r?   N)$fastapir   r   r   r   sqlalchemy.ormr   databaser   modelsr   r	   schemasZ
FoodSchemar
   ZFoodCategorySchemar   routerr   getlistr   postHTTP_201_CREATEDr$   intr-   putr2   r4   HTTP_204_NO_CONTENTr5   r7   r;   r>   r?   r   r   r   r   <module>   s2     
	 	 