diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3980fa4..b77c37f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,12 +6,12 @@ - + + - + - diff --git a/ApiLayers/AllConfigs/Redis/configs.py b/ApiLayers/AllConfigs/Redis/configs.py index 6f22151..978028f 100644 --- a/ApiLayers/AllConfigs/Redis/configs.py +++ b/ApiLayers/AllConfigs/Redis/configs.py @@ -37,6 +37,7 @@ class RedisAuthKeys: AUTH: str = "AUTH" OCCUPANT: str = "OCCUPANT" EMPLOYEE: str = "EMPLOYEE" + CACHE: str = "CACHE" class RedisCategoryKeys: diff --git a/Events/AllEvents/events/account/bases.py b/Events/AllEvents/events/account/bases.py index 85de96d..f253e3d 100644 --- a/Events/AllEvents/events/account/bases.py +++ b/Events/AllEvents/events/account/bases.py @@ -12,6 +12,9 @@ class KeyValidations: data = "data" validation = "validations" +# Key URLS for the cluster +class KeyURLs: + validations = "/validations/validations" # Keys for the cluster class KeyBases: @@ -27,7 +30,9 @@ class PageBases: DASHBOARD = f"/dashboard?{DefaultClusterName}={cluster_name}" -class Page2Keys: - KeyBases.create_key = PageBases.CREATE - KeyBases.update_key = PageBases.UPDATE - KeyBases.list_key = PageBases.DASHBOARD +# Match the keys with the pages +page_2_keys = { + KeyBases.create_key: PageBases.CREATE, + KeyBases.update_key: PageBases.UPDATE, + KeyBases.list_key: PageBases.DASHBOARD, +} diff --git a/Events/AllEvents/events/account/cluster.py b/Events/AllEvents/events/account/cluster.py index 32df569..7eb9a51 100644 --- a/Events/AllEvents/events/account/cluster.py +++ b/Events/AllEvents/events/account/cluster.py @@ -4,7 +4,7 @@ from .account_records import ( AccountRecordsCreateEventMethods, AccountRecordsUpdateEventMethods, ) -from .bases import cluster_name, prefix +from .bases import cluster_name, prefix, page_2_keys from .info import page_infos @@ -19,6 +19,7 @@ AccountCluster = CategoryCluster( "AccountRecordsUpdateEventMethods": AccountRecordsUpdateEventMethods, "AccountRecordsListEventMethods": AccountRecordsListEventMethods, }, + mapping=page_2_keys, include_in_schema=True, sub_category=[], is_client=True, diff --git a/Events/AllEvents/events/account/info.py b/Events/AllEvents/events/account/info.py index ee60247..c7ba706 100644 --- a/Events/AllEvents/events/account/info.py +++ b/Events/AllEvents/events/account/info.py @@ -1,5 +1,5 @@ from Events.Engine.abstract_class import PageInfo -from .bases import KeyValidations, cluster_name, KeyBases, PageBases, icon +from .bases import KeyValidations, cluster_name, KeyBases, PageBases, icon, KeyURLs from .account_records import ( AccountRecordsUpdateEventMethods, AccountRecordsCreateEventMethods, @@ -33,7 +33,7 @@ class ClustersPageInfo: str(KeyBases.list_key): { "headers": { "store": True, - "url": "/validations/header", + "url": KeyURLs.validations, "data": {"event_code": f"{KeyBases.list_key}", "asked_field": KeyValidations.headers}, }, "data": { @@ -65,12 +65,12 @@ class ClustersPageInfo: str(KeyBases.create_key): { "validation": { "store": True, - "url": "/validations/validation", + "url": KeyURLs.validations, "data": {"event_code": f"{KeyBases.create_key}", "asked_field": KeyValidations.validation }, }, "headers": { "store": True, - "url": "/validations/header", + "url": KeyURLs.validations, "data": {"event_code": f"{KeyBases.create_key}", "asked_field": KeyValidations.headers}, }, }, @@ -91,7 +91,6 @@ class ClustersPageInfo: }, ) - update_page_info = PageInfo( name=f"{cluster_name}", url=PageBases.UPDATE, @@ -100,12 +99,12 @@ class ClustersPageInfo: str(KeyBases.update_key): { "validation": { "store": True, - "url": "/validations/validation", + "url": KeyURLs.validations, "data": {"event_code": f"{KeyBases.update_key}", "asked_field": KeyValidations.validation}, }, "headers": { "store": True, - "url": "/validations/header", + "url": KeyURLs.validations, "data": {"event_code": f"{KeyBases.update_key}", "asked_field": KeyValidations.headers}, }, }, diff --git a/Events/AllEvents/validations/validation/function_handlers.py b/Events/AllEvents/validations/validation/function_handlers.py index bae2201..2b43bd3 100644 --- a/Events/AllEvents/validations/validation/function_handlers.py +++ b/Events/AllEvents/validations/validation/function_handlers.py @@ -192,6 +192,7 @@ class RetrievePage(BaseRouteModel): prefix=cluster_name.PREFIX, url=dict(page_info).get("url", None), icon=dict(page_info).get("icon", None), + mapping=cluster_name.MAPPING, page_info=dict(page_info).get("page_info", None), endpoints={}, language_models={}, diff --git a/Events/Engine/abstract_class.py b/Events/Engine/abstract_class.py index c25f05c..88377a3 100644 --- a/Events/Engine/abstract_class.py +++ b/Events/Engine/abstract_class.py @@ -266,8 +266,9 @@ class CategoryCluster: PREFIX: str PAGEINFO: Optional[Dict["str", PageInfo]] DESCRIPTION: str - ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...} + ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...} SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...] + MAPPING: Optional[List[Dict[str, Any]]] # [{"key": "value"}, ...] INCLUDE_IN_SCHEMA: Optional[bool] = True IS_CLIENT: Optional[bool] = False @@ -279,6 +280,7 @@ class CategoryCluster: description: str, endpoints: dict[str, MethodToEvent], sub_category: list, + mapping: Optional[List[Dict[str, Any]]] = None, pageinfo: Optional[Dict["str", PageInfo]] = None, include_in_schema: Optional[bool] = True, is_client: Optional[bool] = False, @@ -291,6 +293,7 @@ class CategoryCluster: self.ENDPOINTS = endpoints or {} self.SUBCATEGORY = sub_category or [] self.INCLUDE_IN_SCHEMA = include_in_schema + self.MAPPING = mapping self.IS_CLIENT = is_client @property @@ -341,16 +344,16 @@ class CategoryCluster: def retrieve_page_info(self): """ PAGE_INFO:ClusterToMethod = {"PageInfo": {...}, "subCategory": PAGE_INFO:ClusterToMethod} - return {"prefix": self.PREFIX, **page_info} + return {"prefix": self.PREFIX, "mapping": self.MAPPING, **page_infos} """ page_infos = {} if isinstance(self.PAGEINFO, dict): for page_key, page_info in dict(self.PAGEINFO).items(): if page_info_dict := getattr(page_info, "as_dict", None): page_infos[page_key] = page_info_dict - return {"prefix": self.PREFIX, **page_infos} + return {"prefix": self.PREFIX, "mapping": self.MAPPING, **page_infos} if hasattr(self.PAGEINFO, "as_dict"): - return {"prefix": self.PREFIX, **self.PAGEINFO.as_dict} + return {"prefix": self.PREFIX, "mapping": self.MAPPING, **self.PAGEINFO.as_dict} return