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];

View File

View File

@@ -1,5 +1,6 @@
import defineApp from '../../helpers/define-app';
import addAuthHeader from './common/add-auth-header';
import actions from './actions';
import auth from './auth';
export default defineApp({
@@ -13,4 +14,5 @@ export default defineApp({
primaryColor: '000000',
beforeRequest: [addAuthHeader],
auth,
actions,
});