67 lines
2.0 KiB
Python
67 lines
2.0 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
|
|
from .function_handlers import RetrieveValidation
|
|
|
|
|
|
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 = ValidationEventMethods.retrieve_event(
|
|
event_function_code=f"{menu_event.key}"
|
|
)
|
|
data = function.REQUEST_VALIDATOR(**data.data)
|
|
RetrieveValidation.context_retriever = ContextRetrievers(func=validations_endpoint)
|
|
return function.endpoint_callable(request=request, data=data)
|
|
|
|
MenuEventMethods.endpoint_callable = menu_endpoint
|