예제 #1
0
 def request(self, method, url, params=None, headers=None):
     params = params or self._params
     requestor = RequestHandler(
         token=self.api_token,
         api_base=self.api_base or constants.API_BASE,
     )
     response = requestor.request(method, url, params, headers)
     return create_object(response, self.api_token, _type=self.class_name)
예제 #2
0
    def _update(self, params=None):
        if self.next_page > 1:
            params = {'page': self.next_page}

        requestor = RequestHandler(token=self.api_token)
        response = requestor.request('get', self.initial_url, params)

        self.current_index = 0
        self.length = response['count']
        self.current_list = response['results']

        if response['next']:
            self.next_page += 1
        else:
            self.next_page = None
예제 #3
0
def login(user, password, api_base=None):
    data = {
        'email': user,
        'password': password,
    }
    requestor = RequestHandler()

    try:
        response = requestor.request(
            url='/{}/rest-auth/login/'.format(constants.API_VERSION),
            method='post',
            params=data,
        )
    except APIError as error:
        if hasattr(error, 'request') and error.request.status_code == 400:
            raise AuthenticationError(error.request) from None
        else:
            raise

    if constants.DEBUG:
        print('Received authentication token {}.'.format(response['key']))
    constants.API_TOKEN = response['key']