124 lines
4.0 KiB
Python
124 lines
4.0 KiB
Python
import uuid
|
|
|
|
from fastapi import APIRouter, Request, Response, Header
|
|
|
|
from ApiDefaults.config import api_config
|
|
from Events.people.cluster import PeopleRouterCluster
|
|
from ApiControllers.providers.token_provider import TokenProvider
|
|
from Controllers.Postgres.pagination import PaginateOnly
|
|
|
|
|
|
people_route = APIRouter(prefix="/people", tags=["People"])
|
|
|
|
|
|
@people_route.post(
|
|
path="/list",
|
|
description="List people endpoint",
|
|
operation_id="f102db46-031a-43e4-966a-dae6896f985b",
|
|
)
|
|
def people_route_list(
|
|
request: Request,
|
|
response: Response,
|
|
data: PaginateOnly,
|
|
language: str = Header(None, alias="language"),
|
|
domain: str = Header(None, alias="domain"),
|
|
tz: str = Header(None, alias="timezone"),
|
|
):
|
|
"""
|
|
List people endpoint
|
|
"""
|
|
endpoint_code = "f102db46-031a-43e4-966a-dae6896f985b"
|
|
token = request.headers.get(api_config.ACCESS_TOKEN_TAG, None)
|
|
headers = {
|
|
"language": language or "",
|
|
"domain": domain or "",
|
|
"eys-ext": f"{str(uuid.uuid4())}",
|
|
"tz": tz or "GMT+3",
|
|
"token": token,
|
|
}
|
|
token_object = TokenProvider.get_dict_from_redis(token=token)
|
|
event_key = TokenProvider.retrieve_event_codes(
|
|
endpoint_code=endpoint_code, token=token_object
|
|
)
|
|
event_cluster_matched = PeopleRouterCluster.get_event_cluster("PeopleList").match_event(
|
|
event_key=event_key
|
|
)
|
|
response.headers["X-Header"] = "List Header GET"
|
|
if runner_callable := event_cluster_matched.event_callable(list_options=data):
|
|
return runner_callable
|
|
raise ValueError("Event key not found or multiple matches found")
|
|
|
|
|
|
@people_route.post(
|
|
path="/create",
|
|
description="Create people endpoint",
|
|
operation_id="eb465fde-337f-4b81-94cf-28c6d4f2b1b6",
|
|
)
|
|
def people_route_create(
|
|
request: Request,
|
|
response: Response,
|
|
language: str = Header(None, alias="language"),
|
|
domain: str = Header(None, alias="domain"),
|
|
tz: str = Header(None, alias="timezone"),
|
|
):
|
|
"""
|
|
Create people endpoint
|
|
"""
|
|
endpoint_code = "eb465fde-337f-4b81-94cf-28c6d4f2b1b6"
|
|
token = request.headers.get(api_config.ACCESS_TOKEN_TAG, None)
|
|
headers = {
|
|
"language": language or "",
|
|
"domain": domain or "",
|
|
"eys-ext": f"{str(uuid.uuid4())}",
|
|
"tz": tz or "GMT+3",
|
|
"token": token,
|
|
}
|
|
token_object = TokenProvider.get_dict_from_redis(token=token)
|
|
event_key = TokenProvider.retrieve_event_codes(
|
|
endpoint_code=endpoint_code, token=token_object
|
|
)
|
|
event_cluster_matched = PeopleRouterCluster.get_event_cluster("PeopleCreate").match_event(
|
|
event_key=event_key
|
|
)
|
|
response.headers["X-Header"] = "Create Header POST"
|
|
if runner_callable := event_cluster_matched.event_callable():
|
|
return runner_callable
|
|
raise ValueError("Event key not found or multiple matches found")
|
|
|
|
|
|
@people_route.post(
|
|
path="/update",
|
|
description="Update people endpoint",
|
|
operation_id="c9e5ba69-6915-43f5-8f9c-a5c2aa865b89",
|
|
)
|
|
def people_route_update(
|
|
request: Request,
|
|
response: Response,
|
|
language: str = Header(None, alias="language"),
|
|
domain: str = Header(None, alias="domain"),
|
|
tz: str = Header(None, alias="timezone"),
|
|
):
|
|
"""
|
|
Update people endpoint
|
|
"""
|
|
token = request.headers.get(api_config.ACCESS_TOKEN_TAG, None)
|
|
endpoint_code = "c9e5ba69-6915-43f5-8f9c-a5c2aa865b89"
|
|
headers = {
|
|
"language": language or "",
|
|
"domain": domain or "",
|
|
"eys-ext": f"{str(uuid.uuid4())}",
|
|
"tz": tz or "GMT+3",
|
|
"token": token,
|
|
}
|
|
token_object = TokenProvider.get_dict_from_redis(token=token)
|
|
event_key = TokenProvider.retrieve_event_codes(
|
|
endpoint_code=endpoint_code, token=token_object
|
|
)
|
|
event_cluster_matched = PeopleRouterCluster.get_event_cluster("PeopleUpdate").match_event(
|
|
event_key=event_key
|
|
)
|
|
response.headers["X-Header"] = "Update Header POST"
|
|
if runner_callable := event_cluster_matched.event_callable():
|
|
return runner_callable
|
|
raise ValueError("Event key not found or multiple matches found")
|