"""Infra endpoints.""" from typing import Any from fastapi import APIRouter, Depends, status from pydantic import UUID4 from splitio.client.factory import ( Client as SplitioClient, ) from contributor.api.auth import identity_uuid_from_scope from contributor.api.datasources import get_splitio_client from contributor.api.schemas import infra as schemas from contributor.connectors.features import BooleanFeature from contributor.constants.features import FEATURE_FLAG_CCM_SAY_BONJOUR router = APIRouter(tags=["infra"]) @router.get( "/hello/", operation_id="hello", response_model=schemas.HelloResponse, ) async def hello() -> dict[str, Any]: """Check authenticated profile's vendor access.""" return {"status": "ok"} @router.get( "/hello/split", operation_id="hello_split", response_model=schemas.HelloSplitResponse, description="Endpoint to check splitio connectivity.", status_code=status.HTTP_200_OK, ) def hello_split( identity_uuid: UUID4 = Depends(identity_uuid_from_scope), splitio_client: SplitioClient = Depends(get_splitio_client), ) -> schemas.HelloSplitResponse: """Endpoint to check splitio connectivity.""" bonjour_feature = BooleanFeature( client=splitio_client, feature_name=FEATURE_FLAG_CCM_SAY_BONJOUR, ) if bonjour_feature.is_on_for_identity(str(identity_uuid)): return schemas.HelloSplitResponse(message="bonjour") return schemas.HelloSplitResponse(message="hello") @router.get("/") async def hello_world() -> dict[str, Any]: return {"Hello": "World!"}