from fastapi import APIRouter, Depends from ApiControllers.abstracts.default_validations import CommonHeaders from ApiControllers.providers.token_provider import TokenProvider from Controllers.Postgres.pagination import PaginateOnly from Events.area.cluster import BuildAreaRouterCluster area_route = APIRouter(prefix="/building/area", tags=["Building Area"]) @area_route.post( path="/list", description="List building area endpoint", operation_id="f2831efc-5493-448c-bcf6-4d52d744ba7e", ) def area_list_route( data: PaginateOnly, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ List building area endpoint """ token_object = TokenProvider.get_dict_from_redis(token=headers.token) event_founder_dict = dict(endpoint_code=headers.operation_id, token=token_object) event_key = TokenProvider.retrieve_event_codes(**event_founder_dict) FoundCluster = BuildAreaRouterCluster.get_event_cluster("BuildAreaList") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @area_route.post( path="/create", description="Create building area endpoint", operation_id="66e8b310-7a5d-41f4-977c-ee5f3b0603da", ) def area_create_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Create building area endpoint """ token_object = TokenProvider.get_dict_from_redis(token=headers.token) event_founder_dict = dict(endpoint_code=headers.operation_id, token=token_object) event_key = TokenProvider.retrieve_event_codes(**event_founder_dict) FoundCluster = BuildAreaRouterCluster.get_event_cluster("BuildAreaCreate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @area_route.post( path="/update", description="Update building area endpoint", operation_id="d7769899-156d-49ff-85f4-06e3faa23e30", ) def area_update_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Update building area endpoint """ token_object = TokenProvider.get_dict_from_redis(token=headers.token) event_founder_dict = dict(endpoint_code=headers.operation_id, token=token_object) event_key = TokenProvider.retrieve_event_codes(**event_founder_dict) FoundCluster = BuildAreaRouterCluster.get_event_cluster("BuildAreaUpdate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data)