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())
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())
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()
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)
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()
def get_entry_by_uid(model_class, uid, **kwargs): session = Session() return session.query(model_class).filter_by(uid=uid, **kwargs).one()
def list_wallets(*filters): session = Session() return (session.query(Wallets).join(Users).filter(*filters).all())