示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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
示例#6
0
 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
示例#7
0
    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
示例#8
0
 def _error_response(self, request, error):
     resp = HTTPResponse()
     resp.status_code = ERROR_STATUS_CODE
     resp.write_bytes(json.dumps({'error': error}))
     return resp
示例#9
0
 def _error_response(self, request, error):
     resp = HTTPResponse()
     resp.status_code = ERROR_STATUS_CODE
     resp.write_bytes(json.dumps({'error': error}))
     return resp