Ejemplo n.º 1
0
def update_entry(entry, *, commit=True, **kwargs):
    session = Session()
    for key, value in kwargs.items():
        setattr(entry, key, value)
    if commit:
        session.commit()
    return entry
Ejemplo 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())
Ejemplo 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()
Ejemplo n.º 4
0
def authenticate(username, password):
    from lab4.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)
Ejemplo n.º 5
0
def db_session_context():
    session = Session()
    try:
        yield session
    except Exception:
        session.rollback()
        raise
    else:
        try:
            session.commit()
        except Exception:
            session.rollback()
            raise
Ejemplo n.º 6
0
def create_entry(model_class, *, commit=True, **kwargs):
    session = Session()
    entry = model_class(**kwargs)
    session.add(entry)
    if commit:
        session.commit()
    return entry
Ejemplo n.º 7
0
def list_transactions_for_wallet(wallet_id):
    session = Session()
    session.query(Wallets).filter_by(uid=wallet_id).one()
    transactions_from = (session.query(Transactions).join(
        Wallets, Transactions.from_wallet_uid == Wallets.uid).filter(
            Transactions.from_wallet_uid == wallet_id))
    transactions_to = (session.query(Transactions).join(
        Wallets, Transactions.to_wallet_uid == Wallets.uid).filter(
            Transactions.to_wallet_uid == wallet_id))
    return (transactions_from.union(transactions_to).order_by(
        Transactions.datetime).all())
Ejemplo n.º 8
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()
Ejemplo n.º 9
0
def get_entry_by_uid(model_class, uid, **kwargs):
    session = Session()
    return session.query(model_class).filter_by(uid=uid, **kwargs).one()
Ejemplo n.º 10
0
def list_wallets(*filters):
    session = Session()
    return (session.query(Wallets).join(Users).filter(*filters).all())