diff options
Diffstat (limited to 'gn_auth/auth/authorisation/resources/base.py')
-rw-r--r-- | gn_auth/auth/authorisation/resources/base.py | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/gn_auth/auth/authorisation/resources/base.py b/gn_auth/auth/authorisation/resources/base.py index d2075c2..02b738f 100644 --- a/gn_auth/auth/authorisation/resources/base.py +++ b/gn_auth/auth/authorisation/resources/base.py @@ -1,37 +1,22 @@ """Base types for resources.""" from uuid import UUID -from typing import Any, Sequence, NamedTuple +from dataclasses import dataclass, asdict +from typing import Any, Sequence -from gn_auth.auth.dictify import dictify -class ResourceCategory(NamedTuple): +@dataclass(frozen=True) +class ResourceCategory: """Class representing a resource category.""" resource_category_id: UUID resource_category_key: str resource_category_description: str - def dictify(self) -> dict[str, Any]: - """Return a dict representation of `ResourceCategory` objects.""" - return { - "resource_category_id": self.resource_category_id, - "resource_category_key": self.resource_category_key, - "resource_category_description": self.resource_category_description - } -class Resource(NamedTuple): +@dataclass(frozen=True) +class Resource: """Class representing a resource.""" resource_id: UUID resource_name: str resource_category: ResourceCategory public: bool resource_data: Sequence[dict[str, Any]] = tuple() - - def dictify(self) -> dict[str, Any]: - """Return a dict representation of `Resource` objects.""" - return { - "resource_id": self.resource_id, - "resource_name": self.resource_name, - "resource_category": dictify(self.resource_category), - "public": self.public, - "resource_data": self.resource_data - } |