Skip to main content
Glama

mcp-google-sheets

action-recurring.ts2.21 kB
import { createAction, Property, } from '@activepieces/pieces-framework'; import { invoiceninjaAuth } from '../..'; export const actionRecurringInvoice = createAction({ auth: invoiceninjaAuth, name: 'action_recurring_invoice', displayName: 'Perform Action on Recurring Invoice', description: 'Actions include: start, stop, send_now, restore, archive, delete.', props: { recurring_id: Property.LongText({ displayName: 'Recurring Invoice ID (alphanumeric)', description: 'Recurring Invoice ID from Invoice Ninja', required: true, }), actionRecurring: Property.StaticDropdown({ displayName: 'Action to perform', description: 'Choose one', defaultValue: 1, required: true, options: { options: [ { label: 'Start', value: 'start', }, { label: 'Stop', value: 'stop', }, { label: 'Send Now', value: 'send_now', }, { label: 'Restore', value: 'restore', }, { label: 'Archive', value: 'archive', }, { label: 'Delete', value: 'delete', }, ], }, }), }, async run(context) { const INapiToken = context.auth.access_token; const headers = { 'X-Api-Token': INapiToken, 'Content-Type': 'application/json', }; const baseUrl = context.auth.base_url.replace(/\/$/, ''); const i: string[] = [context.propsValue.recurring_id]; const createRequestBody = { action: context.propsValue.actionRecurring, ids: i, }; const createRequestResponse = await fetch( `${baseUrl}/api/v1/recurring_invoices/bulk`, { method: 'POST', headers, body: JSON.stringify(createRequestBody), } ); if (!createRequestResponse.ok) { throw new Error( `Failed to perform action on recurring invoice. Status: ${createRequestResponse.status}` ); } const createResponseBody = await createRequestResponse.json(); return createResponseBody; }, });

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