Skip to main content

lib/rocksky/playlist.ex

defmodule Rocksky.Playlist do
  @moduledoc "`app.rocksky.playlist.*` endpoints."

  alias Rocksky.HTTP

  @doc "Fetch a playlist. Params: `:uri`."
  def get_playlist(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.playlist.getPlaylist", params)

  @doc "List playlists. Params: `:limit`, `:offset`."
  def get_playlists(client, params \\ []),
    do: HTTP.query(client, "app.rocksky.playlist.getPlaylists", params)

  @doc "Create a playlist. Params: `:name`, `:description`."
  def create_playlist(client, params),
    do: HTTP.procedure(client, "app.rocksky.playlist.createPlaylist", params)

  @doc "Remove a playlist. Params: `:uri`."
  def remove_playlist(client, params),
    do: HTTP.procedure(client, "app.rocksky.playlist.removePlaylist", params)

  @doc "Start a playlist. Params: `:uri`, `:shuffle`, `:position`."
  def start_playlist(client, params),
    do: HTTP.procedure(client, "app.rocksky.playlist.startPlaylist", params)

  @doc "Insert files into a playlist. Params: `:uri`, `:files`, `:position`."
  def insert_files(client, params),
    do: HTTP.procedure(client, "app.rocksky.playlist.insertFiles", params)

  @doc "Insert a directory into a playlist. Params: `:uri`, `:directory`, `:position`."
  def insert_directory(client, params),
    do: HTTP.procedure(client, "app.rocksky.playlist.insertDirectory", params)
end