mirror of
https://github.com/fuckpiracyshield/data-model.git
synced 2024-05-19 21:46:18 +02:00
46 lines
999 B
Python
46 lines
999 B
Python
from piracyshield_data_model.base import BaseModel
|
|
|
|
class AccountFlagsModel(BaseModel):
|
|
|
|
flags = {
|
|
'change_password': False
|
|
}
|
|
|
|
def __init__(self, flags: dict):
|
|
# little hack
|
|
self.flags = self.flags
|
|
|
|
if not all(flag in self.flags.keys() for flag in flags.keys()):
|
|
raise AccountFlagsModelUnknownFlagException()
|
|
|
|
self.flags['change_password'] = self._validate_flag(flags['change_password'])
|
|
|
|
def _validate_flag(self, value: bool) -> bool | Exception:
|
|
"""
|
|
Validates the single flag value.
|
|
|
|
:param value: true/false if the flag is active or not.
|
|
:return: the same value.
|
|
"""
|
|
|
|
if isinstance(value, bool):
|
|
return value
|
|
|
|
raise AccountFlagsModelChangePasswordException()
|
|
|
|
class AccountFlagsModelUnknownFlagException(Exception):
|
|
|
|
"""
|
|
Unknown flag.
|
|
"""
|
|
|
|
pass
|
|
|
|
class AccountFlagsModelValueException(Exception):
|
|
|
|
"""
|
|
Non valid value.
|
|
"""
|
|
|
|
pass
|