def post(self): try: form = self.request.form code = form["code"][0] except: return bad_request_with_detail("No data posted, or data in incorrect format") params = {"grant_type": "authorization_code", "redirect_uri": config.SPOTIFY_CALLBACK_URL, "code": code} token_response = requests.post(config.SPOTIFY_TOKEN_ENDPOINT, data=params, headers=auth_header, verify=True) response = HTTPResponse() response.content_type = "application/json" response.status_code = token_response.status_code if token_response.status_code == 200: json_response = token_response.json() refresh_token = json_response["refresh_token"] encrypted_token = crypt.encrypt(refresh_token) json_response["refresh_token"] = encrypted_token response_body = json.dumps(json_response) response.write(response_body) else: response.write_bytes(token_response.content) return response
def post(self): try: form = self.request.form code = form['code'][0] except: return bad_request_with_detail( 'No data posted, or data in incorrect format') params = { "grant_type": "authorization_code", "redirect_uri": config.SPOTIFY_CALLBACK_URL, "code": code } token_response = requests.post(config.SPOTIFY_TOKEN_ENDPOINT, data=params, headers=auth_header, verify=True) response = HTTPResponse() response.content_type = 'application/json' response.status_code = token_response.status_code if token_response.status_code == 200: json_response = token_response.json() refresh_token = json_response["refresh_token"] encrypted_token = crypt.encrypt(refresh_token) json_response["refresh_token"] = encrypted_token response_body = json.dumps(json_response) response.write(response_body) else: response.write_bytes(token_response.content) return response
def get(self, skip_body=False): mime_type, encoding = mimetypes.guess_type(self.filepath) response = HTTPResponse(mime_type or 'plain/text', encoding) if not skip_body: response.headers.append(HTTP_HEADER_ACCEPT_RANGE_NONE) file = open(self.filepath, 'rb') try: response.write_bytes(file.read()) finally: file.close() return response
def post(self): try: form = self.request.form encrypted_token = form["refresh_token"][0] token = crypt.decrypt(encrypted_token) except: return bad_request_with_detail("No data posted, or data in incorrect format") params = {"grant_type": "refresh_token", "refresh_token": token} token_response = requests.post(config.SPOTIFY_TOKEN_ENDPOINT, data=params, headers=auth_header, verify=True) response = HTTPResponse() response.content_type = "application/json" response.status_code = token_response.status_code response.write_bytes(token_response.content) return response
def get(self, skip_body=False): route_args = self.route_args path = route_args['path'] assert path abspath = os.path.abspath(os.path.join(self.root, path)) if not abspath.startswith(self.root): return forbidden() if not os.path.exists(abspath): return not_found() if not os.path.isfile(abspath): return forbidden() mime_type, encoding = mimetypes.guess_type(abspath) response = HTTPResponse(mime_type or 'plain/text', encoding) if not skip_body: response.headers.append(HTTP_HEADER_ACCEPT_RANGE_NONE) file = open(abspath, 'rb') try: response.write_bytes(file.read()) finally: file.close() return response
def post(self): try: form = self.request.form encrypted_token = form['refresh_token'][0] token = crypt.decrypt(encrypted_token) except: return bad_request_with_detail( 'No data posted, or data in incorrect format') params = {"grant_type": "refresh_token", "refresh_token": token} token_response = requests.post(config.SPOTIFY_TOKEN_ENDPOINT, data=params, headers=auth_header, verify=True) response = HTTPResponse() response.content_type = 'application/json' response.status_code = token_response.status_code response.write_bytes(token_response.content) return response
def _error_response(self, request, error): resp = HTTPResponse() resp.status_code = ERROR_STATUS_CODE resp.write_bytes(json.dumps({'error': error})) return resp