Exemplo n.º 1
0
def list_wallets(*filters):
    session = Session()
    return (
        session.query(Wallets)
        .join(Users)
        .filter(*filters)
        .all()
    )
Exemplo n.º 2
0
def identity(payload):
    admin_identity = AdminUserIdentity()
    if payload['identity'] == admin_identity.id:
        return admin_identity
    else:
        session = Session()
        return UserModelIdentity(
            session.query(Users).filter_by(uid=payload['identity']).one())
Exemplo n.º 3
0
def list_users(email=None, first_name=None, last_name=None):
    session = Session()
    filters = []
    if email:
        filters.append(Users.email.like(email))
    if first_name:
        filters.append(Users.email.like(first_name))
    if last_name:
        filters.append(Users.email.like(last_name))
    return session.query(Users).filter(*filters).all()
Exemplo n.º 4
0
def authenticate(username, password):
    from lab6.app import app
    session = Session()
    admin_identity = AdminUserIdentity()
    if username == f'admin-{admin_identity.id}' and password == app.config[
            'SECRET_KEY']:
        return admin_identity
    else:
        user = session.query(Users).filter_by(email=username).one()
        if user and check_password_hash(user.password, password):
            return UserModelIdentity(user)
Exemplo n.º 5
0
def list_transactions_for_wallet(user_uid, wallet_id):
    session = Session()
    session.query(Wallets).filter_by(uid=wallet_id, owner_uid=user_uid).one()
    transactions_from = (
        session.query(Transactions)
        .join(Wallets, Transactions.from_wallet_uid == Wallets.uid)
        .filter(
            Wallets.owner_uid == user_uid, Transactions.from_wallet_uid == wallet_id
        )
    )
    transactions_to = (
        session.query(Transactions)
        .join(Wallets, Transactions.to_wallet_uid == Wallets.uid)
        .filter(
            Wallets.owner_uid == user_uid, Transactions.to_wallet_uid == wallet_id
        )
    )
    return (
        transactions_from.union(transactions_to)
        .order_by(Transactions.datetime)
        .all()
    )
Exemplo n.º 6
0
def delete_entry(model_class, uid, *, commit=True, **kwargs):
    session = Session()
    session.query(model_class).filter_by(uid=uid, **kwargs).delete()
    if commit:
        session.commit()
Exemplo n.º 7
0
def get_entry_by_uid(model_class, uid, **kwargs):
    session = Session()
    return session.query(model_class).filter_by(uid=uid, **kwargs).one()