auth and token middleware context update
This commit is contained in:
@@ -135,11 +135,11 @@ class MethodToEvent:
|
||||
return found_event
|
||||
raise ValueError(f"Event with function code {event_function_code} not found")
|
||||
|
||||
def retrieve_redis_value(self, cluster_name: str) -> Dict:
|
||||
def retrieve_redis_value(self, cluster: "CategoryCluster") -> Dict:
|
||||
"""
|
||||
Key("METHOD_FUNCTION_CODES:{ClusterToMethod}:MethodEvent:Endpoint") : Value([FUNCTION_CODE, ...])
|
||||
"""
|
||||
redis_key = f"{RedisCategoryKeys.METHOD_FUNCTION_CODES}:{cluster_name}:{self.name}:{self.URL}"
|
||||
redis_key = f"{RedisCategoryKeys.METHOD_FUNCTION_CODES}:{cluster.name}:{self.name}:{f"{cluster.PREFIX}{self.URL}"}"
|
||||
return {redis_key: self.retrieve_all_event_keys()}
|
||||
|
||||
@staticmethod
|
||||
@@ -156,8 +156,8 @@ class CategoryCluster:
|
||||
PREFIX: str
|
||||
PAGEINFO: PageInfo
|
||||
DESCRIPTION: str
|
||||
ENDPOINTS: list[MethodToEvent] # [MethodToEvent, ...]
|
||||
SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...]
|
||||
ENDPOINTS: dict[str, MethodToEvent] # {"MethodToEvent": MethodToEvent, ...}
|
||||
SUBCATEGORY: Optional[List["CategoryCluster"]] # [CategoryCluster, ...]
|
||||
INCLUDE_IN_SCHEMA: Optional[bool] = True
|
||||
|
||||
def __init__(
|
||||
@@ -167,7 +167,7 @@ class CategoryCluster:
|
||||
prefix: str,
|
||||
description: str,
|
||||
pageinfo: PageInfo,
|
||||
endpoints: list[MethodToEvent],
|
||||
endpoints: dict[str, MethodToEvent],
|
||||
sub_category: list,
|
||||
include_in_schema: Optional[bool] = True,
|
||||
):
|
||||
@@ -176,7 +176,7 @@ class CategoryCluster:
|
||||
self.PREFIX = prefix
|
||||
self.PAGEINFO = pageinfo
|
||||
self.DESCRIPTION = description
|
||||
self.ENDPOINTS = endpoints or []
|
||||
self.ENDPOINTS = endpoints or {}
|
||||
self.SUBCATEGORY = sub_category or []
|
||||
self.INCLUDE_IN_SCHEMA = include_in_schema
|
||||
|
||||
@@ -189,7 +189,7 @@ class CategoryCluster:
|
||||
RedisCategoryKeys.CLUSTER_2_METHOD_EVENT
|
||||
Returns the class name and function codes for the class.
|
||||
"""
|
||||
dict_cluster_2_method, list_endpoints = {}, [i.name for i in self.ENDPOINTS]
|
||||
dict_cluster_2_method, list_endpoints = {}, [i.name for i in self.ENDPOINTS.values()]
|
||||
for endpoint_name in list_endpoints:
|
||||
dict_cluster_2_method[endpoint_name] = self.name
|
||||
dict_cluster_2_method[self.name] = list_endpoints
|
||||
@@ -200,7 +200,7 @@ class CategoryCluster:
|
||||
Retrieves all function codes by iterating over the events list.
|
||||
"""
|
||||
all_function_codes = []
|
||||
for event_method in self.ENDPOINTS:
|
||||
for event_method in self.ENDPOINTS.values():
|
||||
all_function_codes.extend([str(event_key) for event_key in event_method.EVENTS.keys()])
|
||||
return all_function_codes
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from Events.AllEvents.events_file import events_list
|
||||
|
||||
from .category_cluster_models import cluster_controller
|
||||
|
||||
|
||||
@@ -7,10 +8,12 @@ def get_cluster_controller_group():
|
||||
cluster_controller.import_all_category_clusters(cluster)
|
||||
return cluster_controller
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
prepare_routing = PrepareRouting(cluster_controller_group=cluster_controller)
|
||||
prepare_events = PrepareEvents(cluster_controller_group=cluster_controller)
|
||||
set_items_2_redis = SetItems2Redis(prepare_events=prepare_events)
|
||||
print(set_items_2_redis)
|
||||
print(prepare_routing)
|
||||
"""
|
||||
|
||||
@@ -38,7 +38,7 @@ class PrepareRouting(DecoratorModule):
|
||||
return self.__safe_endpoint_list
|
||||
|
||||
def create_endpoints(self, cluster: CategoryCluster, created_router):
|
||||
for method_endpoint in list(cluster.ENDPOINTS):
|
||||
for method_endpoint in list(cluster.ENDPOINTS.values()):
|
||||
# Filter out the original function and apply decorators
|
||||
applied_decorators_qualname = self.apply_decorators(method_endpoint)
|
||||
# Register the endpoint with FastAPI router
|
||||
@@ -89,17 +89,17 @@ class PrepareEvents(DecoratorModule):
|
||||
f"{self.valid_redis_items.CLUSTER_FUNCTION_CODES_KEY}:{cluster.name}" : tuple(cluster.retrieve_all_function_codes())
|
||||
}
|
||||
|
||||
for method_endpoint in list(cluster.ENDPOINTS):
|
||||
for method_endpoint in list(cluster.ENDPOINTS.values()):
|
||||
# [SAVE]REDIS => ENDPOINT2CLASS = {MethodEvent: Endpoint("/.../.../..."), ...}
|
||||
self.valid_redis_items.ENDPOINT2CLASS_VALUE.update(
|
||||
{f"{cluster.name}:{method_endpoint.name}": method_endpoint.URL}
|
||||
{f"{cluster.name}:{method_endpoint.name}": f"{cluster.PREFIX}{method_endpoint.URL}"}
|
||||
)
|
||||
self.valid_redis_items.ENDPOINT2CLASS_VALUE.update(
|
||||
{method_endpoint.URL :f"{cluster.name}:{method_endpoint.name}"}
|
||||
{f"{cluster.PREFIX}{method_endpoint.URL}" :f"{cluster.name}:{method_endpoint.name}"}
|
||||
)
|
||||
# [SAVE]REDIS => METHOD_FUNCTION_CODES:MethodEvent:Endpoint = [FUNCTION_CODE, ...]
|
||||
self.valid_redis_items.METHOD_FUNCTION_CODES_VALUE.update(
|
||||
method_endpoint.retrieve_redis_value(cluster_name=cluster.name)
|
||||
method_endpoint.retrieve_redis_value(cluster=cluster)
|
||||
)
|
||||
|
||||
|
||||
@@ -112,28 +112,22 @@ class SetItems2Redis:
|
||||
self.set_items()
|
||||
|
||||
def __str__(self):
|
||||
self.std_out = f"\nSetItems2Redis:\n\n{self.std_out}"
|
||||
return self.std_out
|
||||
return f"\nSetItems2Redis:\n\n{self.std_out}"
|
||||
|
||||
def set_items(self):
|
||||
from ApiLayers.AllConfigs.Redis.configs import RedisCategoryKeys
|
||||
dict_prep = self.prepare_events.valid_redis_items.as_dict
|
||||
RedisActions.delete(
|
||||
list_keys=[
|
||||
f"{RedisCategoryKeys.MENU_FIRST_LAYER}:*",
|
||||
f"{RedisCategoryKeys.CLUSTER_INDEX}:*",
|
||||
f"{RedisCategoryKeys.CLUSTER_FUNCTION_CODES}:*",
|
||||
f"{RedisCategoryKeys.METHOD_FUNCTION_CODES}:*"
|
||||
f"{RedisCategoryKeys.ENDPOINT2CLASS}:*",
|
||||
]
|
||||
)
|
||||
for redis_values_to_delete, redis_key_type in RedisCategoryKeys.__annotations__.items():
|
||||
if isinstance(redis_key_type, str):
|
||||
continue
|
||||
RedisActions.delete(list_keys=[f"{redis_values_to_delete}*"])
|
||||
|
||||
# Save MENU_FIRST_LAYER to Redis
|
||||
redis_list = RedisList(redis_key=RedisCategoryKeys.MENU_FIRST_LAYER)
|
||||
RedisActions.set_json(
|
||||
list_keys=redis_list.to_list(), value=dict_prep.get(RedisCategoryKeys.MENU_FIRST_LAYER)
|
||||
)
|
||||
self.std_out = f"{RedisCategoryKeys.MENU_FIRST_LAYER}: {dict_prep.get(RedisCategoryKeys.MENU_FIRST_LAYER)}\n"
|
||||
self.std_out += f"{RedisCategoryKeys.MENU_FIRST_LAYER}: {dict_prep.get(RedisCategoryKeys.MENU_FIRST_LAYER)}\n"
|
||||
|
||||
# Save CLUSTER_INDEX to Redis
|
||||
redis_list = RedisList(redis_key=RedisCategoryKeys.CLUSTER_INDEX)
|
||||
@@ -167,5 +161,11 @@ class SetItems2Redis:
|
||||
self.std_out += f"\n{RedisCategoryKeys.ENDPOINT2CLASS}: {dict_prep.get(RedisCategoryKeys.ENDPOINT2CLASS)}\n"
|
||||
|
||||
RedisActions.set_json(
|
||||
list_keys=[f"{RedisCategoryKeys.REBUILD}:*"], value=False
|
||||
list_keys=[f"{RedisCategoryKeys.REBUILD}:*"], value={
|
||||
f"{RedisCategoryKeys.MENU_FIRST_LAYER}": True,
|
||||
f"{RedisCategoryKeys.CLUSTER_INDEX}": True,
|
||||
f"{RedisCategoryKeys.CLUSTER_FUNCTION_CODES}": True,
|
||||
f"{RedisCategoryKeys.METHOD_FUNCTION_CODES}": True,
|
||||
f"{RedisCategoryKeys.ENDPOINT2CLASS}": True,
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user