import httpx from uuid import UUID from fastapi import HTTPException, status from typing import List, Dict from config import settings # from common_lib.utils.ssl_transport import ssl_transport from common_lib.utils.http_client import client # async def get_profile_by_user_id(user_id: UUID, token: str) -> dict: # try: # async with httpx.AsyncClient(transport=ssl_transport, timeout=5.0) as client: # response = await client.get( # f"{settings.PROFILE_SERVICE}/user_id/{user_id}", # headers={"Authorization": f"Bearer {token}"} # ) # if response.status_code != 200: # raise HTTPException( # status_code=response.status_code, # detail=f"profile_service: {response.text}" # ) # wrapped = response.json() # return wrapped["data"] # except httpx.RequestError: # raise HTTPException(status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail="Token service unavailable") async def get_profile_by_user_id(user_id: UUID, current_user: UUID, token: str) -> dict: try: # async with httpx.AsyncClient(transport=ssl_transport, timeout=5.0) as client: response = await client.post( f"{settings.PROFILE_SERVICE}/user_id/internal", headers={"Authorization": f"Bearer {token}"}, json={"user_id": str(user_id), "current_user": str(current_user)}) if response.status_code != 200: raise HTTPException( status_code=response.status_code, detail=f"profile_service: {response.text}" ) wrapped = response.json() return wrapped["data"] except httpx.RequestError as e: raise HTTPException(status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail=f"profile_service unreachable: {str(e)}") async def get_profiles_by_user_ids(user_ids: List[UUID], token: str, user_id: UUID) -> Dict[str, dict]: try: # async with httpx.AsyncClient(transport=ssl_transport, timeout=5.0) as client: response = await client.post( f"{settings.PROFILE_SERVICE}/user_ids/internal", headers={"Authorization": f"Bearer {token}"}, json={"user_ids": [str(uid) for uid in user_ids], "user_id": str(user_id)}) if response.status_code != 200: raise HTTPException( status_code=response.status_code, detail=f"profile_service: {response.text}" ) wrapped = response.json() return wrapped["data"] except httpx.RequestError as e: raise HTTPException(status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail=f"profile_service unreachable: {str(e)}")