async def make_transaction(transaction_in: TransactionIn): user_in_db = get_user(transaction_in.username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") if user_in_db.balance < transaction_in.value: raise HTTPException(status_code=400, detail="Sin fondos suficientes") user_in_db.balance = user_in_db.balance - transaction_in.value update_user(user_in_db) transaction_in_db = TransactionInDB(**transaction_in.dict(), actual_balance=user_in_db.balance) transaction_in_db = save_transaction(transaction_in_db) transaction_out = TransactionOut(**transaction_in_db.dict()) return transaction_out
async def make_transaction(transaction_in: TransactionIn): user_in_db = get_user(transaction_in.nombre) if user_in_db == None: raise HTTPException(status_code=404, detail="El hotel no existe") if user_in_db.totalHabitaciones < transaction_in.totalHabitaciones: raise HTTPException(status_code=400, detail="No se tienen los fondos suficientes") user_in_db.totalHabitaciones = user_in_db.totalHabitaciones - transaction_in.reserva update_user(user_in_db) transaction_in_db = TransactionInDB(**transaction_in.dict(), totalHabs=user_in_db.totalHabitaciones) transaction_in_db = save_transaction(transaction_in_db) transaction_out = TransactionOut(**transaction_in_db.dict()) return transaction_out
return {"Autenticado": True} @api.get("/user/balance/{username}") async def get_balance(username: str): user_in_db = get_user(username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") user_out = UserOut(**user_in_db.dict()) return user_out @api.put("/user/transaction/") async def make_transaction(transaction_in: TransactionIn): user_in_db = get_user(transaction_in.username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") user_in_db.balance = user_in_db.balance + transaction_in.income user_in_db.balance = user_in_db.balance - transaction_in.expense update_user(user_in_db) transaction_in_db = TransactionInDB(**transaction_in.dict(), actual_balance = user_in_db.balance) transaction_in_db = save_transaction(transaction_in_db) transaction_out = TransactionOut(**transaction_in_db.dict()) return transaction_out