import { axios } from "@pipedream/platform";
import spotify from "../../spotify.app.mjs";
export default {
name: "Create a Playlist",
description: "Create a playlist for a Spotify user. The playlist will be empty until you add tracks. [See the docs here](https://developer.spotify.com/documentation/web-api/reference/#/operations/create-playlist).",
key: "spotify-create-playlist",
version: "0.1.3",
annotations: {
destructiveHint: false,
openWorldHint: true,
readOnlyHint: false,
},
type: "action",
props: {
spotify,
name: {
type: "string",
label: "Name",
description: "The name for the new playlist, for example \"Your Coolest Playlist\". This name does not need to be unique; a user may have several playlists with the same name.",
},
description: {
type: "string",
label: "Description",
description: "Value for playlist description as displayed in Spotify Clients and in the Web API.",
optional: true,
},
isPublic: {
type: "boolean",
label: "Public",
description: "Defaults to `true`. If `true` the playlist will be public, if `false` it will be private.",
optional: true,
},
isCollaborative: {
type: "boolean",
label: "Collaborative",
description: "Defaults to `false`. If `true` the playlist will be collaborative. Note that to create a collaborative playlist you must also set **public** to `false`.",
optional: true,
},
},
async run({ $ }) {
const {
name,
description,
isPublic,
isCollaborative,
} = this;
const data = {
name,
description,
public: isPublic,
collaborative: isCollaborative,
};
const resp = await axios($, this.spotify._getAxiosParams({
method: "POST",
path: `/users/${this.spotify.$auth.oauth_uid}/playlists`,
data,
}));
$.export("$summary", `Successfully created a new playlist, "${data.name}"`);
return resp;
},
};