wag-services-and-backend-la.../Events/AllEvents/events/address/address.py

167 lines
5.9 KiB
Python

"""
Account 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.token_event_middleware import TokenEventMiddleware
from ApiLayers.ApiValidations.Response.default_response import (
EndpointSuccessListResponse,
)
from .function_handlers import (
AddressListFunctions,
AddressUpdateFunctions,
AddressSearchFunctions,
AddressCreateFunctions,
)
from .api_events import AddressSuperUserEvents
AddressListEventMethods = MethodToEvent(
name="AddressListEventMethods",
events={
AddressSuperUserEvents.AddressListEvents.key: AddressSuperUserEvents.AddressListEvents,
},
headers=[],
errors=[],
decorators_list=[TokenEventMiddleware.event_required],
url="/list",
method="POST",
summary="List all accounts by given previligous",
description="List all accounts by given previligous",
)
def account_list_event_endpoint(
request: Request, data: EndpointBaseRequestModel
) -> Dict[str, Any]:
context_retriever = ContextRetrievers(func=account_list_event_endpoint)
event_2_catch = AddressListEventMethods.retrieve_event(
event_function_code=f"{AddressSuperUserEvents.AddressListEvents.key}"
)
context_retriever.RESPONSE_VALIDATOR = event_2_catch.RESPONSE_VALIDATOR
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
AddressListFunctions.context_retriever = context_retriever
pagination_result = event_2_catch.endpoint_callable(data=data)
return EndpointSuccessListResponse(
code=event_2_catch.static_key, lang=context_retriever.token.lang
).as_dict(
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
)
AddressListEventMethods.endpoint_callable = account_list_event_endpoint
AddressCreateEventMethods = MethodToEvent(
name="AddressCreateEventMethods",
events={
AddressSuperUserEvents.AddressCreateEvents.key: AddressSuperUserEvents.AddressCreateEvents,
},
headers=[],
errors=[],
decorators_list=[TokenEventMiddleware.event_required],
url="/create",
method="POST",
summary="Create Address via given data and previligous",
description="Create Address via given data and previligous",
)
def account_create_event_endpoint(
request: Request, data: EndpointBaseRequestModel
) -> Dict[str, Any]:
context_retriever = ContextRetrievers(func=account_create_event_endpoint)
event_2_catch = AddressCreateEventMethods.retrieve_event(
event_function_code=f"{AddressSuperUserEvents.AddressCreateEvents.key}"
)
context_retriever.RESPONSE_VALIDATOR = event_2_catch.RESPONSE_VALIDATOR
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
AddressCreateFunctions.context_retriever = context_retriever
pagination_result = event_2_catch.endpoint_callable(data=data)
return EndpointSuccessListResponse(
code=event_2_catch.static_key, lang=context_retriever.token.lang
).as_dict(
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
)
AddressCreateEventMethods.endpoint_callable = account_create_event_endpoint
AddressUpdateEventMethods = MethodToEvent(
name="AddressUpdateEventMethods",
events={
AddressSuperUserEvents.AddressUpdateEvents.key: AddressSuperUserEvents.AddressUpdateEvents,
},
headers=[],
errors=[],
decorators_list=[TokenEventMiddleware.event_required],
url="/update",
method="POST",
summary="Update Address via given data and previligous",
description="Update Address via given data and previligous",
)
def account_update_event_endpoint(
request: Request, data: EndpointBaseRequestModel
) -> Dict[str, Any]:
context_retriever = ContextRetrievers(func=account_update_event_endpoint)
event_2_catch = AddressUpdateEventMethods.retrieve_event(
event_function_code=f"{AddressSuperUserEvents.AddressUpdateEvents.key}"
)
context_retriever.RESPONSE_VALIDATOR = event_2_catch.RESPONSE_VALIDATOR
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
AddressUpdateFunctions.context_retriever = context_retriever
pagination_result = event_2_catch.endpoint_callable(data=data)
return EndpointSuccessListResponse(
code=event_2_catch.static_key, lang=context_retriever.token.lang
).as_dict(
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
)
AddressUpdateEventMethods.endpoint_callable = account_update_event_endpoint
AddressSearchEventMethods = MethodToEvent(
name="AddressSearchEventMethods",
events={
AddressSuperUserEvents.AddressSearchEvents.key: AddressSuperUserEvents.AddressSearchEvents,
},
headers=[],
errors=[],
decorators_list=[TokenEventMiddleware.event_required],
url="/search",
method="POST",
summary="Search Address via given data and previligous",
description="Search Address via given data and previligous",
)
def address_search_event_endpoint(
request: Request, data: EndpointBaseRequestModel
) -> Dict[str, Any]:
context_retriever = ContextRetrievers(func=account_update_event_endpoint)
event_2_catch = AddressUpdateEventMethods.retrieve_event(
event_function_code=f"{AddressSuperUserEvents.AddressSearchEvents.key}"
)
context_retriever.RESPONSE_VALIDATOR = event_2_catch.RESPONSE_VALIDATOR
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
AddressSearchFunctions.context_retriever = context_retriever
pagination_result = event_2_catch.endpoint_callable(data=data)
return EndpointSuccessListResponse(
code=event_2_catch.static_key, lang=context_retriever.token.lang
).as_dict(
data=pagination_result.data, pagination=pagination_result.pagination.as_dict()
)
AddressSearchEventMethods.endpoint_callable = address_search_event_endpoint