123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- from enum import Enum
- from sqlalchemy import CHAR, TypeDecorator
- from sqlalchemy.dialects.postgresql import UUID
- class CreatedByRole(Enum):
- """
- Enum class for createdByRole
- """
- ACCOUNT = "account"
- END_USER = "end_user"
- @classmethod
- def value_of(cls, value: str) -> 'CreatedByRole':
- """
- Get value of given mode.
- :param value: mode value
- :return: mode
- """
- for role in cls:
- if role.value == value:
- return role
- raise ValueError(f'invalid createdByRole value {value}')
- class CreatedFrom(Enum):
- """
- Enum class for createdFrom
- """
- SERVICE_API = "service-api"
- WEB_APP = "web-app"
- EXPLORE = "explore"
- @classmethod
- def value_of(cls, value: str) -> 'CreatedFrom':
- """
- Get value of given mode.
- :param value: mode value
- :return: mode
- """
- for role in cls:
- if role.value == value:
- return role
- raise ValueError(f'invalid createdFrom value {value}')
- class StringUUID(TypeDecorator):
- impl = CHAR
- cache_ok = True
- def process_bind_param(self, value, dialect):
- if value is None:
- return value
- elif dialect.name == 'postgresql':
- return str(value)
- else:
- return value.hex
- def load_dialect_impl(self, dialect):
- if dialect.name == 'postgresql':
- return dialect.type_descriptor(UUID())
- else:
- return dialect.type_descriptor(CHAR(36))
- def process_result_value(self, value, dialect):
- if value is None:
- return value
- return str(value)
|