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
async def get_count( username: str ): ##ALLWAYS WE USE get WE MUST HAVE TO USE IN THE PARAMETER OF THE DEF user_in_db = get_user(username) ##VERYFI THAT USER EXIST if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") user_out = UserOut( **user_in_db.dict() ) ##THE ** MAPING THE USER, THIS MEANS THEY ONLY GIVE THE PARAMETERS THAT ARE IN USER_MODELS.PY return user_out ##put TO CHANGE ##@api.put("/user/booking/")#booking#transaction ##async def make_booking(booking_in: BookingIn): ## user_in_db = get_user(booking_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 - booking_in.value ##update_user(user_in_db) ##booking_in_db = BookingInDB(**booking_in.dict(),##MAPING ## actual_balance = user_in_db.balance) ##booking_in_db = save_booking(booking_in_db) ##booking_out = BookingOut(**booking_in_db.dict()) ##return booking_out
async def list_users(): users_in_db = get_all_users() users_out = [] for user in users_in_db: user_out = UserOut(**user.dict()) users_out.append(user_out) return users_out
async def users_get(user:str): user = get_user(user) if user == None: raise HTTPException(status_code=404, detail="El usuario no existe") user_out = UserOut(**user.dict()) return user_out
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() ) #El ** es para mapear para que filtre solo los campos que necesita userout del listado que tiene el diccionario de userin return user_out
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() ) #Esto es para hacer un mapeo.U userOut sólo necesita 2 parámetros y el user in db tiene entonces esto ayuda a relacionar lo que esté declarado en las 2 variables return user_out
async def get_user_information(username: str): user_in_db = get_user(username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe.") if not user_in_db.active: raise HTTPException(status_code=404, detail="El usuario ya no se encuentra activo.") user_out = UserOut(**user_in_db.dict()) return user_out
async def get_balance(username: str): user_in_db = get_user( username) #retorna el objeto llamado y lo guarda en una variable if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") #UserOut solo utiliza 2 atributos(user y balance) #el doble "**" mapea y toma los valores que necesita del diccionario #se usa el .dict() para que lo tome como diccionario y pueda mapear user_out = UserOut(**user_in_db.dict()) return user_out
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") ''' Hacer un mapeo entre las claves-valor definidas en la salida con respecto a los campos de la entrada En UserInDB hay 3 campos del diccionario, en UserOut sólo hay dos campos Con ** Se hace el mapeo con los campos definidos en UserOut ''' user_out = UserOut(**user_in_db.dict()) return user_out
async def auth_user(user_in: UserIn): user_in_db = get_user(user_in.username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") if user_in_db.active == False: raise HTTPException(status_code=404, detail="El usuario se encuentra inactivo") if user_in_db.password != user_in.password: raise HTTPException(status_code=404, detail="La contraseña es incorrecta") else: return UserOut(**user_in_db.dict())
async def make_user(user_in: UserIn): user_in_db = get_user(user_in.username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") if user_in_db.password == user_in.password: user_in_db.phone = user_in.phone user_in_db = update_user(user_in_db) user_out = UserOut(**user_in_db.dict()) return user_out return "Contraseña incorrecta"
async def list_user(username: str): user_in_db = get_user(username) if user_in_db is None: return "El usuario " + username + " no existe" user_out = UserOut(**user_in_db.dict()) return user_out
async def get_saldo(alias: str): user_in_db = get_user(alias) 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
async def add_user(user: UserInDB): create_user(user) user_out = UserOut(**user.dict()) return user_out
user_in_db = get_user(user_in.username) if user_in_db == None: raise HTTPException(status_code=404, detail="El usuario no existe") if user_in_db.password != user_in.password: raise HTTPException(status_code=401, detail="Error de autenticacion") 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)
async def get_user(usuario: str, session: Session = Depends(get_session)): user_in_db = session.query(UserInDB).get(usuario) 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