Skip to main content
Glama

mcp-google-sheets

document-generated.ts2.83 kB
import { createTrigger, TriggerStrategy, PiecePropValueSchema, } from '@activepieces/pieces-framework'; import { DedupeStrategy, HttpMethod, Polling, pollingHelper, QueryParams, } from '@activepieces/pieces-common'; import dayjs from 'dayjs'; import { pdfmonkeyAuth } from '../common/auth'; import { makeRequest } from '../common/client'; const polling: Polling<PiecePropValueSchema<typeof pdfmonkeyAuth>, Record<string, never>> = { strategy: DedupeStrategy.TIMEBASED, items: async ({ auth, lastFetchEpochMS }) => { let page = 1; let hasMore = true; const isTest = lastFetchEpochMS === 0; const documents = []; do { const qs: QueryParams = { 'page[number]': page.toString(), 'q[status]': 'success', }; if (!isTest) qs['q[updated_since]'] = lastFetchEpochMS.toString(); const response = await makeRequest<{ document_cards: Array<{ id: string; created_at: string }>; meta: { total_pages: number; current_page: number }; }>(auth as string, HttpMethod.GET, '/document_cards', qs); const items = response.document_cards ?? []; documents.push(...items); if (isTest) break; page++; hasMore = response.meta.current_page < response.meta.total_pages; } while (hasMore); return documents.map((doc) => { return { epochMilliSeconds: dayjs(doc.created_at).valueOf(), data: doc, }; }); }, }; export const documentGeneratedTrigger = createTrigger({ auth: pdfmonkeyAuth, name: 'documentGenerated', displayName: 'Document Generated', description: 'Triggers when a document generation completes successfully.', props: {}, sampleData: { id: '11475e57-0334-4ad5-8896-9462a2243957', app_id: 'c2b67b84-4aac-49ea-bed8-69a15d7a65d3', created_at: '2022-04-07T11:01:38.201+02:00', document_template_id: '96611e9e-ab03-4ac3-8551-1b485210c892', document_template_identifier: 'My Awesome Template', download_url: 'https://pdfmonkey.s3.eu-west-1.amazonaws.com/production/backend/document/11475e57-0334-4ad5-8896-9462a2243957/my-test-document.pdf?...', failure_cause: null, filename: 'my-test-document.pdf', meta: '{ "_filename":"my-test-document.pdf" }', public_share_link: 'https://files.pdfmonkey.io/share/5CEA8C37-D130-4C19-9E11-72BE2293C82B/my-test-document.pdf', status: 'success', updated_at: '2022-04-03T11:12:56.023+02:00', }, type: TriggerStrategy.POLLING, async test(context) { return await pollingHelper.test(polling, context); }, 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) { return await pollingHelper.poll(polling, context); }, });

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