Skip to main content
Glama

mcp-google-sheets

new-page.ts3.11 kB
import { createTrigger, TriggerStrategy, PiecePropValueSchema, } from '@activepieces/pieces-framework'; import { DedupeStrategy, Polling, pollingHelper, HttpMethod } from '@activepieces/pieces-common'; import { confluenceAuth } from '../../index'; import { confluenceApiCall, confluencePaginatedApiCall, PaginatedResponse } from '../common'; import { isNil } from '@activepieces/shared'; import { spaceIdProp } from '../common/props'; interface ConfluencePage { id: string; status: string; title: string; spaceId: string; createdAt: string; version: { number: number; createdAt: string; }; } type Props = { spaceId: string; }; const polling: Polling<PiecePropValueSchema<typeof confluenceAuth>, Props> = { strategy: DedupeStrategy.TIMEBASED, async items({ auth, propsValue, lastFetchEpochMS }) { const pages = []; if (lastFetchEpochMS === 0) { const response = await confluenceApiCall<PaginatedResponse<ConfluencePage>>({ domain: auth.confluenceDomain, username: auth.username, password: auth.password, version: 'v2', method: HttpMethod.GET, resourceUri: `/spaces/${propsValue.spaceId}/pages`, query: { limit: '10', sort: '-created-date', }, }); if (isNil(response.results)) { return []; } pages.push(...response.results); } else { const response = await confluencePaginatedApiCall<ConfluencePage>({ domain: auth.confluenceDomain, username: auth.username, password: auth.password, method: HttpMethod.GET, version: 'v2', resourceUri: `/spaces/${propsValue.spaceId}/pages`, query: { sort: '-created-date', }, }); if (isNil(response)) { return []; } pages.push(...response); } return pages.map((page) => { return { epochMilliSeconds: new Date(page.createdAt).getTime(), data: page, }; }); }, }; export const newPageTrigger = createTrigger({ name: 'new-page', displayName: 'New Page', description: 'Triggers when a new page is created.', auth: confluenceAuth, type: TriggerStrategy.POLLING, props: { spaceId: spaceIdProp, }, async onEnable(context) { await pollingHelper.onEnable(polling, context); }, async onDisable(context) { await pollingHelper.onDisable(polling, context); }, async run(context) { return await pollingHelper.poll(polling, context); }, async test(context) { return await pollingHelper.test(polling, context); }, sampleData: { parentType: 'page', parentId: '123456', spaceId: 'SAMPLE123', ownerId: '12345678abcd', lastOwnerId: null, createdAt: '2024-01-01T12:00:00.000Z', authorId: '12345678abcd', position: 1000, version: { number: 1, message: 'Initial version', minorEdit: false, authorId: '12345678abcd', createdAt: '2024-01-01T12:00:00.000Z', }, body: {}, status: 'current', title: 'Sample Confluence Page', id: '987654321', _links: { editui: '/pages/resumedraft.action?draftId=987654321', webui: '/spaces/SAMPLE/pages/987654321/Sample+Confluence+Page', edituiv2: '/spaces/SAMPLE/pages/edit-v2/987654321', tinyui: '/x/abcd123', }, }, });

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