def make_request(self, path, method='get', headers={}, params={}, account_id_required=False): """ :param path: :param method: :param headers: :param params: :param account_id_required: :return: """ if self.authorized: url = self.api_url + path if method == 'get': return self.api_session.get(url, headers=headers) elif method == 'post': if account_id_required: params.update({'accountId': self.account_id}) headers.update({'Content-Type': 'application/json'}) return self.api_session.post(url, json=params, headers=headers) else: raise B2InvalidRequestType('Request type must be get or post') else: raise B2AuthorizationError('Unknown Error')
def _authorize(self): """ :return: """ path = self.auth_url + '/b2_authorize_account' result = requests.get(path, auth=HTTPBasicAuth(self.key_id, self.application_key)) if result.status_code == 200: result_json = result.json() self.authorized_at = datetime.datetime.utcnow() self.account_id = result_json['accountId'] self.auth_token = result_json['authorizationToken'] self.api_url = result_json['apiUrl'] + '/b2api/v1' self.download_url = result_json['downloadUrl'] + '/file/' self.api_session = requests.Session() self.api_session.headers.update({'Authorization': self.auth_token}) else: raise B2AuthorizationError(decode_error(result))