async def read_products(): products_in_db = get_all_products() products_out = [] for prod in products_in_db: product_out = ProductOut(**prod.dict()) products_out.append(product_out) return products_out
async def all_products(session: Session = Depends(get_session)): products_in_db = session.query(ProductInDB).order_by(ProductInDB.id) products_out: List[ProductOut] = [] for product in products_in_db: product_out = ProductOut(**product.__dict__) products_out.append(product_out) return products_out
async def create_product(product_create: ProductCreate): #Totas las comprobaciones Necesarias product_create = get_product(product_create.codigo) if product_create != None: raise HTTPException(status_code=400, detail="El producto ya existe") product_saved = save_product(ProductsInDB(**product_create.dict())) return ProductOut(**product_saved.dict())
async def delete_product_codigo(codigo: str): product_in_db = get_product(codigo) if product_in_db == None: raise HTTPException(status_code=404, detail="El producto no encontrado") product_deleted = delete_product(codigo) return ProductOut(**product_deleted.dict())
async def update_product(product_create: ProductCreate): product_in_db = get_product(product_create.codigo) if product_in_db == None: raise HTTPException(status_code=404, detail="El producto no encontrado") product_updated = save_product(ProductsInDB(**product_create.dict())) return ProductOut(**product_updated.dict())
async def get_producto(codigo: str): product_in_db = get_product(codigo) if product_in_db == None: raise HTTPException(status_code=404, detail="El producto no existe") product_out = ProductOut(**product_in_db.dict()) return product_out
async def create_product(product: ProductIn, session: Session = Depends(get_session)): product_in_db = ProductInDB(**product.dict()) # Create session.add(product_in_db) session.commit() session.refresh(product_in_db) product_out = ProductOut(**product_in_db.__dict__) return product_out
async def update_product(product: ProductOut, session: Session = Depends(get_session)): product_in_db = session.query(ProductInDB).get(product.id) if product_in_db == None: raise HTTPException(status_code=404, detail='El producto no existe.') else: # Update product_in_db.nombre = product.nombre product_in_db.categoria = product.categoria product_in_db.precio = product.precio product_in_db.unidad = product.unidad product_in_db.proveedor = product.proveedor product_in_db.disponibilidad = product.disponibilidad product_in_db.url = product.url session.commit() session.refresh(product_in_db) product_out = ProductOut(**product_in_db.__dict__) return product_out
async def get_product(id: int, session: Session = Depends(get_session)): product_in_db = session.query(ProductInDB).get(id) if product_in_db == None: raise HTTPException(status_code=404, detail="El producto no existe.") product_out = ProductOut(**product_in_db.__dict__) return product_out