Skip to main content
Glama

mcp-google-sheets

index.ts2.17 kB
import { httpClient, HttpMessageBody, HttpMethod, HttpRequest, QueryParams, } from '@activepieces/pieces-common'; import { SMARTSUITE_API_URL } from './constants'; import { isNil } from '@activepieces/shared'; export type SmartSuiteApiCallParams = { apiKey: string; accountId: string; method: HttpMethod; resourceUri: string; query?: Record<string, string | number | string[] | undefined>; body?: any; }; export type PaginatedResponse<T> = { results: T[]; count: number; next?: string; previous?: string; }; export type TableStucture = { slug: string; label: string; field_type: string; params: { is_auto_generated: boolean; system: boolean; choices?: { label: string; value: string }[]; }; }; export async function smartSuiteApiCall<T extends HttpMessageBody>({ apiKey, accountId, method, resourceUri, query, body, }: SmartSuiteApiCallParams): Promise<T> { const qs: QueryParams = {}; if (query) { for (const [key, value] of Object.entries(query)) { if (value !== null && value !== undefined) { qs[key] = String(value); } } } const request: HttpRequest = { method, url: SMARTSUITE_API_URL + resourceUri, headers: { Authorization: `Token ${apiKey}`, 'ACCOUNT-ID': accountId, }, queryParams: qs, body, }; const response = await httpClient.sendRequest<T>(request); return response.body; } export async function smartSuitePaginatedApiCall<T extends HttpMessageBody>({ apiKey, accountId, method, resourceUri, query, body, }: SmartSuiteApiCallParams): Promise<T[]> { const qs = { ...(query || {}), limit: 100, offset: 0 }; const resultData: T[] = []; let hasMore = true; do { const response = await smartSuiteApiCall<PaginatedResponse<T>>({ accountId, apiKey, method, resourceUri, query: qs, body, }); const items = response.results || []; resultData.push(...items); hasMore = !!response.next && items.length > 0; if (hasMore) { qs.offset = Number(qs.offset) + Number(qs.limit); } } while (hasMore); return resultData; }

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