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.building.cluster import BuildRouterCluster building_route = APIRouter(prefix="/building", tags=["Building"]) @building_route.post( path="/list", description="List buildings endpoint", operation_id="72003d1f-79cc-43c3-9150-3a94f318186e", ) def building_list_route( data: PaginateOnly, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ List buildings 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 = BuildRouterCluster.get_event_cluster("BuildList") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @building_route.post( path="/create", description="Create buildings endpoint", operation_id="13b86c9c-702b-411f-acb9-9ff50ef86507", ) def building_create_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Create buildings 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 = BuildRouterCluster.get_event_cluster("BuildCreate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @building_route.post( path="/update", description="Update buildings endpoint", operation_id="b09fb6fd-a6c9-4c03-8637-9af0570a84e8", ) def building_update_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Update buildings 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 = BuildRouterCluster.get_event_cluster("BuildUpdate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data)