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