feat(wordpress): add new page trigger
This commit is contained in:
@@ -3,7 +3,7 @@ import { IGlobalVariable, IJSONObject } from '@automatisch/types';
|
||||
type Status = {
|
||||
slug: string;
|
||||
name: string;
|
||||
}
|
||||
};
|
||||
type Statuses = Record<string, Status>;
|
||||
|
||||
export default {
|
||||
@@ -29,7 +29,7 @@ export default {
|
||||
statuses.data.push({
|
||||
value: status.slug,
|
||||
name: status.name,
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
return statuses;
|
||||
|
@@ -1,3 +1,4 @@
|
||||
import newPage from './new-page';
|
||||
import newPost from './new-post';
|
||||
|
||||
export default [newPost];
|
||||
export default [newPage, newPost];
|
||||
|
@@ -0,0 +1,59 @@
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
|
||||
export default defineTrigger({
|
||||
name: 'New page',
|
||||
key: 'newPage',
|
||||
description: 'Triggers when a new page is created.',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Status',
|
||||
key: 'status',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: true,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getDynamicData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listStatuses',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
const params = {
|
||||
per_page: 100,
|
||||
page: 1,
|
||||
order: 'desc',
|
||||
orderby: 'date',
|
||||
status: $.step.parameters.status || '',
|
||||
};
|
||||
|
||||
let totalPages = 1;
|
||||
do {
|
||||
const { data, headers } = await $.http.get('?rest_route=/wp/v2/pages', {
|
||||
params,
|
||||
});
|
||||
|
||||
params.page = params.page + 1;
|
||||
totalPages = Number(headers['x-wp-totalpages']);
|
||||
|
||||
if (data.length) {
|
||||
for (const page of data) {
|
||||
const dataItem = {
|
||||
raw: page,
|
||||
meta: {
|
||||
internalId: page.id.toString(),
|
||||
},
|
||||
};
|
||||
|
||||
$.pushTriggerItem(dataItem);
|
||||
}
|
||||
}
|
||||
} while (params.page <= totalPages);
|
||||
},
|
||||
});
|
@@ -1,6 +1,8 @@
|
||||
---
|
||||
favicon: /favicons/wordpress.svg
|
||||
items:
|
||||
- name: New page
|
||||
desc: Triggers when a new page is created.
|
||||
- name: New post
|
||||
desc: Triggers when a new post is created.
|
||||
---
|
||||
|
Reference in New Issue
Block a user