119 lines
3.6 KiB
Python
119 lines
3.6 KiB
Python
"""
|
|
Validation related API endpoints.
|
|
"""
|
|
|
|
from typing import Any, Dict
|
|
from fastapi import Request
|
|
|
|
from Events.Engine.abstract_class import MethodToEvent
|
|
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
|
|
from ApiLayers.Middleware.auth_middleware import MiddlewareModule
|
|
|
|
from .api_events import validation_event, menu_event, cluster_event, page_event
|
|
from .function_handlers import RetrieveValidation, RetrievePage
|
|
|
|
|
|
ValidationEventMethods = MethodToEvent(
|
|
name="ValidationEventMethods",
|
|
events={validation_event.key: validation_event},
|
|
headers=[],
|
|
errors=[],
|
|
url="/validations",
|
|
method="POST",
|
|
decorators_list=[MiddlewareModule.auth_required],
|
|
summary="Get Validations by event function code",
|
|
description="Get Validations by event function code by All, Header, Validation & request url",
|
|
)
|
|
|
|
|
|
def validations_endpoint(
|
|
request: Request, data: EndpointBaseRequestModel
|
|
) -> Dict[str, Any]:
|
|
function = ValidationEventMethods.retrieve_event(
|
|
event_function_code=f"{validation_event.key}"
|
|
)
|
|
data = function.REQUEST_VALIDATOR(**data.data)
|
|
RetrieveValidation.context_retriever = ContextRetrievers(func=validations_endpoint)
|
|
return function.endpoint_callable(request=request, data=data)
|
|
|
|
|
|
ValidationEventMethods.endpoint_callable = validations_endpoint
|
|
|
|
|
|
MenuEventMethods = MethodToEvent(
|
|
name="MenuEventMethods",
|
|
events={menu_event.key: menu_event},
|
|
headers=[],
|
|
errors=[],
|
|
url="/menu",
|
|
method="POST",
|
|
decorators_list=[MiddlewareModule.auth_required],
|
|
summary="Get Left Menu of the user",
|
|
description="Get Left Menu of the user",
|
|
)
|
|
|
|
|
|
def menu_endpoint(request: Request, data: EndpointBaseRequestModel) -> Dict[str, Any]:
|
|
function = MenuEventMethods.retrieve_event(
|
|
event_function_code=f"{menu_event.key}"
|
|
)
|
|
data = function.REQUEST_VALIDATOR(**data.data)
|
|
RetrieveValidation.context_retriever = ContextRetrievers(func=menu_endpoint)
|
|
return function.endpoint_callable(request=request, data=data)
|
|
|
|
|
|
MenuEventMethods.endpoint_callable = menu_endpoint
|
|
|
|
|
|
# Cluster Event
|
|
ClusterEventMethods = MethodToEvent(
|
|
name="ClusterEventMethods",
|
|
events={cluster_event.key: cluster_event},
|
|
headers=[],
|
|
errors=[],
|
|
url="/cluster",
|
|
method="POST",
|
|
decorators_list=[MiddlewareModule.auth_required],
|
|
summary="Get Left Menu of the user",
|
|
description="Get Left Menu of the user",
|
|
)
|
|
|
|
|
|
def cluster_endpoint(
|
|
request: Request, data: EndpointBaseRequestModel
|
|
) -> Dict[str, Any]:
|
|
function = ClusterEventMethods.retrieve_event(
|
|
event_function_code=f"{cluster_event.key}"
|
|
)
|
|
data = function.REQUEST_VALIDATOR(**data.data)
|
|
RetrievePage.context_retriever = ContextRetrievers(func=cluster_endpoint)
|
|
return function.endpoint_callable(request=request, data=data)
|
|
|
|
|
|
ClusterEventMethods.endpoint_callable = cluster_endpoint
|
|
|
|
|
|
# Page Event
|
|
PageEventMethods = MethodToEvent(
|
|
name="PageEventMethods",
|
|
events={page_event.key: page_event},
|
|
headers=[],
|
|
errors=[],
|
|
url="/page",
|
|
method="POST",
|
|
decorators_list=[MiddlewareModule.auth_required],
|
|
summary="Get Left Menu of the user",
|
|
description="Get Left Menu of the user",
|
|
)
|
|
|
|
|
|
def page_endpoint(request: Request, data: EndpointBaseRequestModel) -> Dict[str, Any]:
|
|
function = PageEventMethods.retrieve_event(
|
|
event_function_code=f"{page_event.key}"
|
|
)
|
|
data = function.REQUEST_VALIDATOR(**data.data)
|
|
RetrievePage.context_retriever = ContextRetrievers(func=page_endpoint)
|
|
return function.endpoint_callable(request=request, data=data)
|
|
|
|
|
|
PageEventMethods.endpoint_callable = page_endpoint |