| 123456789101112131415161718192021222324252627282930313233343536 |
- import sqlmodel
- from .user import user
- from .secret import secret
- class secret_loader(sqlmodel.Session):
- def __init__(self, owner: user) -> None:
- if not owner.in_database:
- raise Exception("User to build loaded for not exists.")
- self.__owner = owner
- @property
- def owner(self) -> user:
- return self.__owner
- def append(self, target: secret) -> bool:
- if target.in_database or not target.is_ready:
- return False
- if self.get_by_name(target.name) is not None:
- return False
- self.add(target)
- self.commit()
- self.refresh(target)
- def get_by_name(self, target: str) -> secret | None:
- target = target.upper()
- query = sqlmodel.select(secret)
- query = query.where(user.id == self.owner.id)
- query = query.where(secret.name == target)
- query = query.limit(1)
- return self.exec(query).first()
|