Skip to main content
Glama

mcp-google-sheets

on-changed-data.ts2.87 kB
import { createTrigger, TriggerStrategy, PiecePropValueSchema, } from '@activepieces/pieces-framework'; import { DedupeStrategy, Polling, pollingHelper, } from '@activepieces/pieces-common'; import { weblingAuth } from '../../index'; import { WeblingChanges } from '../common/types'; import { getChanges } from '../common/helpers'; const polling: Polling< PiecePropValueSchema<typeof weblingAuth>, { calendarId?: string } > = { strategy: DedupeStrategy.TIMEBASED, items: async ({ auth, propsValue, lastFetchEpochMS }) => { const changes: WeblingChanges = await getChanges(auth, lastFetchEpochMS); const items = [ { epochMilliSeconds: Date.now(), // maybe use revision instead? data: changes, }, ]; return items; }, }; export const onChangedData = createTrigger({ auth: weblingAuth, name: 'onChangedData', displayName: 'On Changed Data', description: 'Triggers when anything was added, updated or deleted since last request.', props: {}, sampleData: { objects: { account: [244, 246], accountgroup: [242], accountgrouptemplate: [241], accounttemplate: [243, 245, 247, 248, 250], apikey: [5241], article: [4579, 4580], articlegroup: [4578], calendar: [235, 4428], calendarevent: [4431, 4434, 4435, 4436], comment: [4423], debitor: [1205, 1208], debitorcategory: [650], document: [4506], documentgroup: [114], domain: [1771], email: [5085], entry: [321, 323, 338], entrygroup: [320, 322, 337], file: [4525], member: [4270, 4271, 398, 399], memberform: [4491], membergroup: [100], page: [4495], participant: [4460], period: [240], periodchain: [239], periodgroup: [238], settings: [233], template: [228], user: [120, 343, 345], }, deleted: [235], context: [], definitions: ['member'], settings: false, quota: true, subscription: true, revision: 4758, version: 2560, }, type: TriggerStrategy.POLLING, async test(context) { const { store, auth, propsValue } = context; return await pollingHelper.test(polling, { store, auth, propsValue, files: context.files, }); }, async onEnable(context) { const { store, auth, propsValue } = context; await pollingHelper.onEnable(polling, { store, auth, propsValue, }); }, async onDisable(context) { const { store, auth, propsValue } = context; await pollingHelper.onDisable(polling, { store, auth, propsValue, }); }, async run(context) { const { store, auth, propsValue } = context; return await pollingHelper.poll(polling, { store, auth, propsValue, files: context.files, }); }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server