updated version

This commit is contained in:
2025-02-10 11:37:18 +03:00
parent 2c5b6956c8
commit e16c7fc177
7 changed files with 30 additions and 20 deletions

View File

@@ -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,
}

View File

@@ -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,

View File

@@ -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},
},
},

View File

@@ -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={},

View File

@@ -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