예제 #1
0
async def make_transaction(
        transaction_in: TransactionIn):  #entra modelo transaccion

    user_in_db = get_user(transaction_in.username)  #valida usuario

    if user_in_db == None:
        raise HTTPException(status_code=404, detail="El usuario no existe")

    if user_in_db.balance < transaction_in.value:  #valida el saldo con lo que se retirara
        raise HTTPException(status_code=400, detail="Sin fondos suficientes")
# ya todo validado

    user_in_db.balance = user_in_db.balance - transaction_in.value  #resta la transaccion del saldo
    update_user(user_in_db)  #actualiza la base de datos

    #creamos el un objeto trnasaccionIN con el mapeo de la transaccion
    transaction_in_db = TransactionInDB(
        **transaction_in.dict(), actual_balance=user_in_db.balance
    )  #guarda el balance del usuario en ese momento como un atributo suyo

    transaction_in_db = save_transaction(
        transaction_in_db)  #guarda esa transaccionIN

    transaction_out = TransactionOut(
        **transaction_in_db.dict())  #crea la TransaccionOUT con su mapeo
    return transaction_out  #retorna el modelo de transaccion OUT
예제 #2
0
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
예제 #3
0
파일: main.py 프로젝트: RosaRR/AppReto2
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
예제 #4
0
async def make_transaction(transaction_in: TransactionIn):

    user_in_db = get_user(transaction_in.ID_empleado)

    if user_in_db != None:
        raise HTTPException(status_code=404, detail="El usuario ya existe")

    
    #update_user(user_in_db)

    transaction_in_db = TransactionInDB(**transaction_in.dict())
    transaction_in_db = save_transaction(transaction_in_db)

    transaction_out = TransactionOut(**transaction_in_db.dict())

    return  transaction_out
예제 #5
0
async def make_transaction(transaction_in: TransactionIn):#Recibe un usuario y valor a retirar
    user_in_db = get_user(transaction_in.username)#Verifica si el usuario existe

    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 #Resta el balance actual con el valor que retiro
    update_user(user_in_db) #Actualiza el usuario

    transaction_in_db = TransactionInDB(
        **transaction_in.dict(), actual_balance=user_in_db.balance)
    transaction_in_db = save_transaction(transaction_in_db) #Guarda la transaccion

    transaction_out = TransactionOut(**transaction_in_db.dict()) #Pasa la transaccion para retornarla al usuario
    return transaction_out
예제 #6
0
파일: main.py 프로젝트: MDrakus/Hotel00
async def make_transaction(transaction_in: TransactionIn):

    hotel_in_db = get_hotel(transaction_in.nombre)

    if hotel_in_db == None:
        raise HTTPException(status_code=404, detail="El hotel no existe")

    if hotel_in_db.totalHabitaciones < transaction_in.totalHabitaciones:
        raise HTTPException(status_code=400, detail=" ")

    hotel_in_db.totalHabitaciones = hotel_in_db.totalHabitaciones - transaction_in.reserva
    update_hotel(hotel_in_db)

    transaction_in_db = TransactionInDB(**transaction_in.dict(), totalHabs = hotel_in_db.totalHabitaciones)
    transaction_in_db = save_transaction(transaction_in_db)

    transaction_out = TransactionOut(**transaction_in_db.dict())

    return  transaction_out
예제 #7
0
파일: main.py 프로젝트: MDrakus/Hotel1
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
예제 #8
0
    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