feat(wordpress): add new page trigger

This commit is contained in:
Rıdvan Akca
2023-09-14 16:44:29 +03:00
committed by Ali BARIN
parent 45865d701a
commit da86fe56bd
4 changed files with 65 additions and 3 deletions

View File

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

View File

@@ -1,3 +1,4 @@
import newPage from './new-page';
import newPost from './new-post';
export default [newPost];
export default [newPage, newPost];

View File

@@ -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);
},
});

View File

@@ -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.
---