From 8ec047cf447e6b0a9d9c4cc37e7cfc565f3ccb7e Mon Sep 17 00:00:00 2001 From: praffq Date: Sun, 22 Mar 2026 22:23:57 +0530 Subject: [PATCH] adding cache to RoleReadSpec --- .../facility_organization/facility_orgnization_user_spec.py | 4 ++-- care/emr/resources/organization/organization_user_spec.py | 2 +- care/emr/resources/role/spec.py | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/care/emr/resources/facility_organization/facility_orgnization_user_spec.py b/care/emr/resources/facility_organization/facility_orgnization_user_spec.py index 882fe0e728..eed071ee0c 100644 --- a/care/emr/resources/facility_organization/facility_orgnization_user_spec.py +++ b/care/emr/resources/facility_organization/facility_orgnization_user_spec.py @@ -1,7 +1,7 @@ from pydantic import UUID4, field_validator from care.emr.models.organization import FacilityOrganizationUser -from care.emr.resources.base import EMRResource +from care.emr.resources.base import EMRResource, model_from_cache from care.emr.resources.role.spec import RoleReadSpec from care.emr.resources.user.spec import UserSpec from care.security.models import RoleModel @@ -53,5 +53,5 @@ class FacilityOrganizationUserReadSpec(FacilityOrganizationUserBaseSpec): def perform_extra_serialization(cls, mapping, obj): mapping["id"] = obj.external_id mapping["user"] = UserSpec.serialize(obj.user).to_json() - mapping["role"] = RoleReadSpec.serialize(obj.role).to_json() + mapping["role"] = model_from_cache(RoleReadSpec, id=obj.role_id) return mapping diff --git a/care/emr/resources/organization/organization_user_spec.py b/care/emr/resources/organization/organization_user_spec.py index 269242fbd3..8443b98253 100644 --- a/care/emr/resources/organization/organization_user_spec.py +++ b/care/emr/resources/organization/organization_user_spec.py @@ -54,7 +54,7 @@ class OrganizationUserReadSpec(OrganizationUserBaseSpec): def perform_extra_serialization(cls, mapping, obj): mapping["id"] = obj.external_id mapping["user"] = model_from_cache(UserSpec, id=obj.user_id) - mapping["role"] = RoleReadSpec.serialize(obj.role).to_json() + mapping["role"] = model_from_cache(RoleReadSpec, id=obj.role_id) return mapping diff --git a/care/emr/resources/role/spec.py b/care/emr/resources/role/spec.py index 69428f4aba..ac3ee98a8c 100644 --- a/care/emr/resources/role/spec.py +++ b/care/emr/resources/role/spec.py @@ -1,7 +1,7 @@ from pydantic import UUID4, model_validator from pydantic_core.core_schema import ValidationInfo -from care.emr.resources.base import EMRResource +from care.emr.resources.base import EMRResource, cacheable from care.emr.utils.slug_type import SlugType from care.security.models import PermissionModel, RoleModel from care.security.permissions.base import PermissionController @@ -66,6 +66,7 @@ def perform_extra_deserialization(self, is_update, obj): obj.permissions = [] +@cacheable class RoleReadSpec(RoleBaseSpec): permissions: list[PermissionSpec]