wag-managment-api-service-v.../Events/AllEvents/validations/validation/validation.py

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