Merge pull request #1456 from automatisch/AUT-431

feat(notion): add updated database items trigger
This commit is contained in:
Ali BARIN
2023-11-29 16:54:45 +01:00
committed by GitHub
4 changed files with 88 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import newDatabaseItems from './new-database-items';
import updatedDatabaseItems from './updated-database-items';
export default [newDatabaseItems];
export default [newDatabaseItems, updatedDatabaseItems];

View File

@@ -0,0 +1,33 @@
import defineTrigger from '../../../../helpers/define-trigger';
import updatedDatabaseItems from './updated-database-items';
export default defineTrigger({
name: 'Updated database items',
key: 'updatedDatabaseItems',
pollInterval: 15,
description:
'Triggers when there is an update to an item in a chosen database',
arguments: [
{
label: 'Database',
key: 'databaseId',
type: 'dropdown' as const,
required: false,
variables: false,
source: {
type: 'query',
name: 'getDynamicData',
arguments: [
{
name: 'key',
value: 'listDatabases',
},
],
},
},
],
async run($) {
await updatedDatabaseItems($);
},
});

View File

@@ -0,0 +1,51 @@
import { IGlobalVariable } from '@automatisch/types';
type DatabaseItem = {
id: string;
last_edited_time: string;
};
type ResponseData = {
results: DatabaseItem[];
next_cursor?: string;
};
type Payload = {
sorts: [
{
timestamp: 'created_time' | 'last_edited_time';
direction: 'ascending' | 'descending';
}
];
start_cursor?: string;
};
const updatedDatabaseItems = async ($: IGlobalVariable) => {
const payload: Payload = {
sorts: [
{
timestamp: 'last_edited_time',
direction: 'descending',
},
],
};
const databaseId = $.step.parameters.databaseId as string;
const path = `/v1/databases/${databaseId}/query`;
do {
const response = await $.http.post<ResponseData>(path, payload);
payload.start_cursor = response.data.next_cursor;
for (const databaseItem of response.data.results) {
$.pushTriggerItem({
raw: databaseItem,
meta: {
internalId: `${databaseItem.id}-${databaseItem.last_edited_time}`,
},
});
}
} while (payload.start_cursor);
};
export default updatedDatabaseItems;

View File

@@ -3,6 +3,8 @@ favicon: /favicons/notion.svg
items:
- name: New database items
desc: Triggers when a new database item is created.
- name: Updated database items
desc: Triggers when there is an update to an item in a chosen database.
---
<script setup>