diff --git a/src/database/__init__.py b/src/database/__init__.py index 2b16a00..e4acac3 100644 --- a/src/database/__init__.py +++ b/src/database/__init__.py @@ -1,3 +1,3 @@ -from . import add, delete, get, models, prepare +from . import add, delete, get, models, prepare, change -__all__ = ["add", "delete", "get", "models", "prepare"] +__all__ = ["add", "delete", "get", "models", "prepare", "change"] diff --git a/src/database/change.py b/src/database/change.py new file mode 100644 index 0000000..0941c9a --- /dev/null +++ b/src/database/change.py @@ -0,0 +1,16 @@ +import sqlmodel +from sqlalchemy.future import Engine + +from . import models + + +def change_master_pass( + engine: Engine, user_id: int, salt: bytes, passwd: bytes +) -> None: + statement = sqlmodel.update( + models.MasterPass, + models.MasterPass.user_id == user_id, + sqlmodel.values(salt=salt, passwd=passwd), + ) + with sqlmodel.Session(engine) as session: + session.exec(statement) diff --git a/src/database/delete.py b/src/database/delete.py index e69de29..87a087e 100644 --- a/src/database/delete.py +++ b/src/database/delete.py @@ -0,0 +1,18 @@ +import sqlmodel +from sqlalchemy.future import Engine + +from . import models + + +def purge_accounts(engine: Engine, user_id: int) -> None: + statement = sqlmodel.delete(models.Account).where(models.Account.user_id == user_id) + with sqlmodel.Session(engine) as session: + session.exec(statement) + + +def delete_master_pass(engine: Engine, user_id: int) -> None: + statement = sqlmodel.delete(models.MasterPass).where( + models.MasterPass.user_id == user_id + ) + with sqlmodel.Session(engine) as session: + session.exec(statement)