import httpx import pydantic from fansifter_common.adapters.graphql_router import ( GlobalParticipant, GraphqlRouterClient, ) from fansifter_common.artist.exceptions import InvalidGlobalParticipantIdError from fansifter_common.artist.types import GlobalParticipantId class ArtistValidator: def __init__(self, graphql_router_client: GraphqlRouterClient) -> None: self.graphql_router_client = graphql_router_client def validate_global_participant_id( self, global_participant_id: GlobalParticipantId ) -> GlobalParticipant: """Validate global participant id.""" try: global_participant = ( self.graphql_router_client.get_global_participant_by_gp_id( global_participant_id ) ) except (pydantic.ValidationError, httpx.HTTPError) as exc: raise InvalidGlobalParticipantIdError from exc if not global_participant: raise InvalidGlobalParticipantIdError return global_participant