import sqlmodel from sqlalchemy.future import Engine from . import models def get_master_pass(engine: Engine, user_id: int) -> tuple[bytes, bytes] | None: """Gets master pass. Returns tuple of salt and password""" statement = sqlmodel.select(models.MasterPass).where( models.MasterPass.user_id == user_id ) with sqlmodel.Session(engine) as session: result = session.exec(statement).first() print(result) if result is None: return return (result.salt, result.passwd) def get_accounts(engine: Engine, user_id: int) -> list[str]: """Gets list of account names""" statement = sqlmodel.select(models.Account).where(models.Account.user_id == user_id) with sqlmodel.Session(engine) as session: result = session.exec(statement) return [account.name for account in result] def get_account_info( engine: Engine, user_id: int, name: str ) -> tuple[bytes, bytes, bytes]: """Gets account info. Returns tuple of salt, login and password""" statement = sqlmodel.select(models.Account).where( models.Account.user_id == user_id and models.Account.name == name ) with sqlmodel.Session(engine) as session: result = session.exec(statement).first() if result is None: return return (result.salt, result.enc_login, result.enc_pass)