Compare commits

...

2 Commits

Author SHA1 Message Date
Rıdvan Akca
a7bd19e61f feat(wordpress): add find user action 2024-05-29 15:21:21 +02:00
Rıdvan Akca
3d4a9865fe feat(wordpress): add create user action 2024-05-29 14:28:53 +02:00
4 changed files with 177 additions and 1 deletions

View File

@@ -0,0 +1,135 @@
import defineAction from '../../../../helpers/define-action.js';
import isEmpty from 'lodash/isEmpty.js';
import omitBy from 'lodash/omitBy.js';
export default defineAction({
name: 'Create user',
key: 'createUser',
description: 'Creates a new user.',
arguments: [
{
label: 'Email',
key: 'email',
type: 'string',
required: true,
description: '',
variables: true,
},
{
label: 'Username',
key: 'username',
type: 'string',
required: true,
description: '',
variables: true,
},
{
label: 'Password',
key: 'password',
type: 'string',
required: true,
description: '',
variables: true,
},
{
label: 'First Name',
key: 'firstName',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Last Name',
key: 'lastName',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Display Name',
key: 'displayName',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Nickname',
key: 'nickname',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Description',
key: 'description',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Website',
key: 'website',
type: 'string',
required: false,
description: '',
variables: true,
},
{
label: 'Role',
key: 'role',
type: 'dropdown',
required: false,
description: '',
variables: true,
options: [
{ label: 'Administrator', value: 'administrator' },
{ label: 'Author', value: 'author' },
{ label: 'Contributor', value: 'contributor' },
{ label: 'Editor', value: 'editor' },
{ label: 'Subscriber', value: 'subscriber' },
],
},
],
async run($) {
const {
email,
username,
password,
firstName,
lastName,
displayName,
nickname,
description,
website,
role,
} = $.step.parameters;
let body = {
email,
username,
password,
first_name: firstName,
last_name: lastName,
name: displayName,
nickname,
description,
url: website,
};
if (role) {
body.roles = [role];
}
body = omitBy(body, isEmpty);
const response = await $.http.post('?rest_route=/wp/v2/users', body);
$.setActionItem({ raw: response.data });
},
});

View File

@@ -0,0 +1,35 @@
import defineAction from '../../../../helpers/define-action.js';
export default defineAction({
name: 'Find user',
key: 'findUser',
description: 'Finds a user.',
arguments: [
{
label: 'User ID',
key: 'userId',
type: 'dropdown',
required: true,
description: '',
variables: true,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listUsers',
},
],
},
},
],
async run($) {
const userId = $.step.parameters.userId;
const response = await $.http.get(`?rest_route=/wp/v2/users/${userId}`);
$.setActionItem({ raw: response.data });
},
});

View File

@@ -1,5 +1,7 @@
import createPost from './create-post/index.js';
import createUser from './create-user/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, findPost, updatePost];
export default [createPost, createUser, findPost, findUser, updatePost];

View File

@@ -3,8 +3,12 @@ favicon: /favicons/wordpress.svg
items:
- name: Create post
desc: Creates a new post.
- name: Create user
desc: Creates a new user.
- name: Find post
desc: Finds a post.
- name: Find user
desc: Finds a user.
- name: Update post
desc: Updates a post.
---