Source code for spotify_py_sdk.endpoints.endpoints_base

from typing import Optional, Any
from urllib.parse import urlencode


[docs] class EndpointsBase: """Base class for all endpoint classes """ def __init__(self, api): """Constructor method :param api: :class:`SpotifyApi` instance """ self.api = api
[docs] @classmethod def params_for(cls, args: dict) -> str: """Converts params from the given dictionary object to url format :param args: key value pairs indicating query params for request :return: url encoded string """ for key, value in args.copy().items(): if value is None: del args[key] elif type(value) is list: args[key] = ",".join(value) elif type(value) is bool: args[key] = "false" if value is False else "true" return f"?{urlencode(args)}" if args != {} else ""
[docs] def get_request(self, url: str): """Make a GET request to the endpoint """ return self.api.make_request("GET", url)
[docs] def post_request(self, url: str, body: Optional[Any] = None, content_type: Optional[str] = None): """Make a POST request to the endpoint """ return self.api.make_request("POST", url, body, content_type)
[docs] def put_request(self, url: str, body: Optional[Any] = None, content_type: Optional[str] = None): """Make a PUT request to the endpoint """ return self.api.make_request("PUT", url, body, content_type)
[docs] def delete_request(self, url: str, body: Optional[Any] = None): """Make a DELETE request to the endpoint """ return self.api.make_request("DELETE", url, body)