prod-wag-backend-automate-s.../api_services/api_builds/management_service/endpoints/services/router.py

75 lines
3.2 KiB
Python

from typing import Any
from fastapi import APIRouter, Depends
from index import endpoints_index
from events.services.cluster import ServicesRouterCluster
from api_validations.defaults.validations import CommonHeaders
from api_validations.response.pagination import PaginateOnly
from api_middlewares.token_provider import TokenProvider
# Create API router
services_route = APIRouter(prefix="/services", tags=["Service Cluster"])
services_list = "ServicesList"
@services_route.post(
path="/list",
description="List all services endpoint",
operation_id=endpoints_index[services_list],
)
def services_list(data: PaginateOnly, headers: CommonHeaders = Depends(CommonHeaders)):
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 = ServicesRouterCluster.get_event_cluster(services_list)
event_cluster_matched = FoundCluster.match_event(event_key=event_key)
return event_cluster_matched.event_callable(list_options=data)
services_create = "ServicesCreate"
@services_route.post(
path="/create",
description="Create service endpoint",
operation_id=endpoints_index[services_create],
)
def services_create(data, headers: CommonHeaders = Depends(CommonHeaders)):
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 = ServicesRouterCluster.get_event_cluster(services_create)
event_cluster_matched = FoundCluster.match_event(event_key=event_key)
return event_cluster_matched.event_callable(list_options=data)
services_update = "ServicesUpdate"
@services_route.post(
path="/update/{uu_id}",
description="Update service endpoint",
operation_id=endpoints_index[services_update],
)
def services_update(uu_id: str, data, headers: CommonHeaders = Depends(CommonHeaders)):
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 = ServicesRouterCluster.get_event_cluster(services_update)
event_cluster_matched = FoundCluster.match_event(event_key=event_key)
return event_cluster_matched.event_callable(list_options=data)
services_delete = "ServicesDelete"
@services_route.post(
path="/delete/{uu_id}",
description="Delete service endpoint",
operation_id=endpoints_index[services_delete],
)
def services_delete(uu_id: str, headers: CommonHeaders = Depends(CommonHeaders)):
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 = ServicesRouterCluster.get_event_cluster(services_delete)
event_cluster_matched = FoundCluster.match_event(event_key=event_key)
return event_cluster_matched.event_callable(list_options=data)