feat: implement create playlist action for spotify

This commit is contained in:
Zeynep Nur Temel
2023-03-18 19:18:16 +03:00
parent 41e9f32e1b
commit 56243aa076
4 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import defineAction from '../../../../helpers/define-action';
export default defineAction({
name: 'Create playlist',
key: 'cratePlaylist',
description: `Create playlist on user's account.`,
arguments: [
{
label: 'Playlist name',
key: 'playlistName',
type: 'string' as const,
required: true,
description: 'Playlist name',
variables: true,
},
{
label: 'Playlist visibility',
key: 'playlistVisibility',
type: 'dropdown' as const,
required: true,
description: 'Playlist visibility',
variables: true,
options: [
{ label: 'public', value: 'Public' },
{ label: 'private', value: 'Private' },
],
},
{
label: 'Playlist description',
key: 'playlistDescription',
type: 'string' as const,
required: false,
description: 'Playlist description',
variables: true,
},
],
async run($) {
const playlistName = $.step.parameters.playlistName as string;
const playlistDescription = $.step.parameters.playlistDescription as string;
const playlistVisibility =
$.step.parameters.playlistVisibility === 'public'
? true
: (false as boolean);
const response = await $.http.post(
`v1/users/${$.auth.data.userId}/playlists`,
{
name: playlistName,
public: playlistVisibility,
description: playlistDescription,
}
);
$.setActionItem({ raw: response.data });
},
});

View File

@@ -0,0 +1,3 @@
import cratePlaylist from './create-playlist';
export default [cratePlaylist];