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.sites.cluster import BuildSitesRouterCluster sites_route = APIRouter(prefix="/building/sites", tags=["Build Sites"]) @sites_route.post( path="/list", description="List build sites endpoint", operation_id="b64a2479-4160-43bf-9676-cd762a48bf62", ) def sites_list_route( data: PaginateOnly, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ List build sites 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 = BuildSitesRouterCluster.get_event_cluster("BuildSitesList") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @sites_route.post( path="/create", description="Create build sites endpoint", operation_id="e63dab4b-d446-430c-ac7d-0cb47a66390c", ) def sites_create_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Create build sites 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 = BuildSitesRouterCluster.get_event_cluster("BuildSitesCreate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data) @sites_route.post( path="/update", description="Update build sites endpoint", operation_id="34ec902c-5ebe-41f6-8294-dfe634d47d98", ) def sites_update_route( data: dict, headers: CommonHeaders = Depends(CommonHeaders.as_dependency), ): """ Update build sites 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 = BuildSitesRouterCluster.get_event_cluster("BuildSitesUpdate") event_cluster_matched = FoundCluster.match_event(event_key=event_key) return event_cluster_matched.event_callable(data=data)