diff --git a/packages/backend/src/apps/wordpress/actions/delete-post/index.js b/packages/backend/src/apps/wordpress/actions/delete-post/index.js new file mode 100644 index 00000000..2ea77476 --- /dev/null +++ b/packages/backend/src/apps/wordpress/actions/delete-post/index.js @@ -0,0 +1,35 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Delete post', + key: 'deletePost', + description: 'Deletes a post.', + arguments: [ + { + label: 'Post ID', + key: 'postId', + type: 'dropdown', + required: false, + description: 'Choose a post to delete.', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listPosts', + }, + ], + }, + }, + ], + + async run($) { + const { postId } = $.step.parameters; + + const response = await $.http.delete(`?rest_route=/wp/v2/posts/${postId}`); + + $.setActionItem({ raw: response.data }); + }, +}); diff --git a/packages/backend/src/apps/wordpress/actions/index.js b/packages/backend/src/apps/wordpress/actions/index.js index a1731b2c..6d1ca9e4 100644 --- a/packages/backend/src/apps/wordpress/actions/index.js +++ b/packages/backend/src/apps/wordpress/actions/index.js @@ -1,7 +1,15 @@ import createPost from './create-post/index.js'; import createUser from './create-user/index.js'; +import deletePost from './delete-post/index.js'; import findPost from './find-post/index.js'; import findUser from './find-user/index.js'; import updatePost from './update-post/index.js'; -export default [createPost, createUser, findPost, findUser, updatePost]; +export default [ + createPost, + createUser, + deletePost, + findPost, + findUser, + updatePost, +]; diff --git a/packages/backend/src/apps/wordpress/dynamic-data/list-posts/index.js b/packages/backend/src/apps/wordpress/dynamic-data/list-posts/index.js index 464a5469..1045b356 100644 --- a/packages/backend/src/apps/wordpress/dynamic-data/list-posts/index.js +++ b/packages/backend/src/apps/wordpress/dynamic-data/list-posts/index.js @@ -11,6 +11,7 @@ export default { page: 1, per_page: 100, order: 'desc', + status: ['publish', 'future', 'draft', 'pending', 'private'], }; let totalPages = 1; @@ -26,7 +27,7 @@ export default { for (const post of data) { posts.data.push({ value: post.id, - name: post.title.rendered, + name: `${post.title.rendered} (${post.status})`, }); } } diff --git a/packages/docs/pages/apps/wordpress/actions.md b/packages/docs/pages/apps/wordpress/actions.md index a83611f3..cc488309 100644 --- a/packages/docs/pages/apps/wordpress/actions.md +++ b/packages/docs/pages/apps/wordpress/actions.md @@ -5,6 +5,8 @@ items: desc: Creates a new post. - name: Create user desc: Creates a new user. + - name: Delete post + desc: Deletes a post. - name: Find post desc: Finds a post. - name: Find user