diff options
author | Munyoki Kilyungi | 2024-03-12 00:59:07 +0300 |
---|---|---|
committer | Munyoki Kilyungi | 2024-03-13 15:34:56 +0300 |
commit | 1c3d0fc73dfe4682ff41a2c8bd84a29f2d2b130a (patch) | |
tree | b019fe88388eae409354234292c1f053bbdb1b71 /gn_auth/auth/authorisation/resources/base.py | |
parent | 58fde0def491099d3833e3d58ec7c441d84d1ef2 (diff) | |
download | gn-auth-1c3d0fc73dfe4682ff41a2c8bd84a29f2d2b130a.tar.gz |
Define Resource/ResourceCategory using frozen dataclass.
* gn_auth/auth/authorisation/resources/base.py: Import dataclass and
asdict. Remove NamedTuple and dictify.
(ResourceCategory): Use frozen dataclass.
(ResourceCategory.dictify): Delete.
(Resource): Use frozen dataclass.
(Resource.dictify): Delete.
* gn_auth/auth/authorisation/resources/models.py: Delete dictify
import.
(assign_resource_user): Replace dictify with asdict.
(unassign_resource_user): Ditto.
* gn_auth/auth/authorisation/resources/views.py: Import asdict.
Remove dictify import.
(list_resource_categories): Replace dictify with asdict.
(create_resource): Ditto.
(view_resource): Ditto.
(__safe_get_requests_page__): Ditto.
* gn_auth/auth/authorisation/users/views.py:
(user_resources): Replace dictify with asdict.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
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 - } |