Source code for sportmonks_py.teams

from typing import Optional, Union

from sportmonks_py.client.base_client import BaseClient
from sportmonks_py.utils.common_types import (
    Includes,
    Selects,
    Filters,
    StdResponse,
    AsyncResponse,
    Ordering,
)


[docs] class TeamsClient(BaseClient): """ Client for accessing team, player, coach, squad, and referee data via the SportMonks API. """ def __init__(self, base_url: str, api_token: str) -> None: """ Initialize the Teams Client with a base_url, sport and API token. :param api_token: API token for authenticating requests. :param base_url: Base URL for the API. """ super().__init__(base_url=base_url, api_token=api_token)
[docs] def get_teams( self, team_id: Optional[int] = None, country_id: Optional[int] = None, season_id: Optional[int] = None, search: Optional[str] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve team information based on various criteria. :param team_id: ID of the team (optional). :param country_id: ID of the country to filter teams by (optional). :param season_id: ID of the season to filter teams by (optional). :param search: Search string for team names (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if team_id: return self._get( f"teams/{team_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if country_id: return self._get( f"teams/countries/{country_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if season_id: return self._get( f"teams/seasons/{season_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if search: return self._get( f"teams/search/{search}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( "teams", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_players( self, player_id: Optional[int] = None, country_id: Optional[int] = None, search: Optional[str] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve player information based on various criteria. :param player_id: ID of the player (optional). :param country_id: ID of the country to filter players by (optional). :param search: Search string for player names (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if player_id: return self._get( f"players/{player_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if country_id: return self._get( f"players/countries/{country_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if search: return self._get( f"players/search/{search}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( "players", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_players_latest( self, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve all players updated within the last two hours. :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ return self._get( "players/latest", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_coaches( self, coach_id: Optional[int] = None, country_id: Optional[int] = None, search: Optional[str] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve coach information based on various criteria. :param coach_id: ID of the coach (optional). :param country_id: ID of the country to filter coaches by (optional). :param search: Search string for coach names (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if coach_id: return self._get( f"coaches/{coach_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if country_id: return self._get( f"coaches/countries/{country_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if search: return self._get( f"coaches/search/{search}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( "coaches", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_coaches_latest( self, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve all coaches updated within the last two hours. :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ return self._get( "coaches/updated", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_team_squad( self, team_id: int, season_id: Optional[int] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve a team's squad for a specific season. :param team_id: ID of the team. :param season_id: ID of the season (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if not season_id: return self._get( f"squads/teams/{team_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( f"squads/seasons/{season_id}/teams/{team_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_referee( self, referee_id: Optional[int] = None, country_id: Optional[int] = None, season_id: Optional[int] = None, search: Optional[str] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve referee information based on various criteria. :param referee_id: ID of the referee (optional). :param country_id: ID of the country to filter referees by (optional). :param season_id: ID of the season to filter referees by (optional). :param search: Search string for referee names (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if referee_id: return self._get( f"referees/{referee_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if country_id: return self._get( f"referees/countries/{country_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if search: return self._get( f"referees/search/{search}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if season_id: return self._get( f"referees/seasons/{season_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( "referees", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )
[docs] def get_venues( self, venue_id: Optional[int] = None, country_id: Optional[int] = None, season_id: Optional[int] = None, search: Optional[str] = None, includes: Optional[Includes] = None, selects: Optional[Selects] = None, filters: Optional[Filters] = None, async_mode: bool = False, locale: Optional[str] = None, order: Optional[Ordering] = None, ) -> Union[StdResponse, AsyncResponse]: """ Retrieve venue information based on various criteria. :param venue: ID of the venue (optional). :param season_id: ID of the season to filter venue by (optional). :param search: Search string for venue names (optional). :param includes: Objects to include in the response (optional). :param selects: Fields to include or exclude in the response (optional). :param filters: Filters to apply to the results (optional). :param async_mode: Whether to use async mode. :param locale: Language to use for the response (optional). :param order: Order to sort the results in (asc or desc). :return: StdResponse | AsyncResponse """ if venue_id: return self._get( f"venues/{venue_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if search: return self._get( f"venues/search/{search}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) if season_id: return self._get( f"venues/seasons/{season_id}", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, ) return self._get( "venues", params={"include": includes, "select": selects, "filter": filters}, async_mode=async_mode, locale=locale, order=order, )