예제 #1
0
    def retrieve(cls: Type[T],
                 league_id: str,
                 manager_id: str,
                 credentials: RequestCredentials,
                 configuration: Configuration,
                 as_at_round: Optional[int] = None) -> Optional[T]:
        """
        Return a Team in the supplied League, managed by the supplied Manager,
        if it exists.
        """

        parameters = [
            URLParameter('league', league_id),
            URLParameter('manager', manager_id)
        ]

        if as_at_round:
            parameters.append(URLParameter('as_at_round', as_at_round))

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             data=None,
                             url_parameters=URLParameters(parameters),
                             credentials=credentials)

        return cls.optionally_decode(request.response_data)
예제 #2
0
    def retrieve_many(
            cls: Type[T],
            season: Season,
            offset: int,
            limit: int,
            configuration: Configuration,
            order_by: OrderBy = OrderBy.TOTAL_SEASON_POINTS,
            order: Order = Order.DESCENDING,
            name_fragment: Optional[str] = None,
            credentials: Optional[RequestCredentials] = None) -> List[T]:

        parameters = URLParameters([
            URLParameter('season', season.public_id),
            URLParameter('offset', offset),
            URLParameter('limit', limit),
            URLParameter('order_by', order_by.value),
            URLParameter('order', order.value)
        ])

        if name_fragment is not None:
            parameters.append(URLParameter('fragment', name_fragment))

        request = ApiRequest(path=cls._LIST_PATH,
                             method=HTTPMethod.GET,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials,
                             configuration=configuration)

        return cls.optionally_decode_many(request.response_data,
                                          default_to_empty_list=True)
    def retrieve(cls: Type[T], reset_key: str,
                 configuration: Configuration) -> Optional[T]:

        target = URLParameter('reset-key', reset_key)
        parameters = URLParameters([target])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             url_parameters=parameters)

        return cls.optionally_decode(request.response_data)
    def create(cls: Type[T], email_address: str,
               configuration: Configuration) -> T:

        target = URLParameter('email', email_address)
        parameters = URLParameters([target])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.POST,
                             configuration=configuration,
                             url_parameters=parameters)

        return cls.decode(request.response_data)
예제 #5
0
    def retrieve(cls: Type[T], public_id: str, credentials: RequestCredentials,
                 configuration: Configuration) -> Optional[T]:

        parameters = URLParameters([URLParameter('offer', public_id)])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials)

        return cls.optionally_decode(request.response_data)
예제 #6
0
    def delete(self, credentials: RequestCredentials,
               configuration: Configuration) -> None:
        """Delete this Session, AKA logout the user"""
        target = URLParameter('session_id', str(self._session_id))
        parameters = URLParameters([target])

        ApiRequest(path=self.API_PATH,
                   method=HTTPMethod.DELETE,
                   configuration=configuration,
                   credentials=credentials,
                   data=None,
                   url_parameters=parameters)
        return None
예제 #7
0
    def retrieve_list(
            cls: Type[T],
            configuration: Configuration,
            credentials: Optional[RequestCredentials] = None) -> List[T]:

        request = ApiRequest(path=cls._LIST_PATH,
                             method=HTTPMethod.GET,
                             data=None,
                             url_parameters=None,
                             credentials=credentials,
                             configuration=configuration)

        return cls.optionally_decode_many(request.response_data,
                                          default_to_empty_list=True)
예제 #8
0
    def retrieve(cls: Type[T], public_id: str, season: Season,
                 credentials: Optional[RequestCredentials],
                 configuration: Optional[Configuration]) -> Optional[T]:

        parameters = URLParameters([
            URLParameter('public_id', public_id),
            URLParameter('season', season.public_id)
        ])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials,
                             configuration=configuration)

        return cls.optionally_decode(request.response_data)
예제 #9
0
    def retrieve(
            cls: Type[T],
            public_id: str,
            configuration: Configuration,
            credentials: Optional[RequestCredentials] = None) -> Optional[T]:

        if not isinstance(public_id, str):
            raise TypeError('public_id must be of type `str`')

        parameters = URLParameters([URLParameter('public_id', public_id)])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials,
                             configuration=configuration)

        return cls.optionally_decode(request.response_data)
예제 #10
0
    def retrieve(cls: Type[T], public_id: str, credentials: RequestCredentials,
                 configuration: Configuration) -> Optional[T]:
        """
        Optionally return a Human with the given public ID, if it exists
        """

        assert isinstance(public_id, str)

        target = URLParameter('public_id', public_id)
        parameters = URLParameters([target])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials)

        return cls.optionally_decode(request.response_data)
예제 #11
0
    def retrieve(cls: Type[T], public_id: str, credentials: RequestCredentials,
                 configuration: Configuration) -> Optional[T]:
        """
        Optionally return a League with the given public ID, if it exists
        """

        assert isinstance(public_id, str)

        parameters = URLParameters([
            URLParameter('league', public_id),
            URLParameter('season', '2020')  # MVP hardcode
        ])

        request = ApiRequest(path=cls._PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             data=None,
                             url_parameters=parameters,
                             credentials=credentials)

        return cls.optionally_decode(request.response_data)
예제 #12
0
    def retrieve(cls: Type[T], session_id: str,
                 credentials: RequestCredentials,
                 configuration: Configuration) -> Optional[T]:
        """Return a Session with the given Session ID, if it exists"""

        assert isinstance(session_id, str)

        target = URLParameter('session_id', str(session_id))
        parameters = URLParameters([target])

        request = ApiRequest(path=cls.API_PATH,
                             method=HTTPMethod.GET,
                             configuration=configuration,
                             credentials=credentials,
                             data=None,
                             url_parameters=parameters)

        if request.response_data is None:
            return None

        return cls.decode(request.response_data)