Skip to main content
Glama

mcp-google-sheets

update-subscription.action.ts2.37 kB
import { Property, createAction } from '@activepieces/pieces-framework'; import { HttpMethod } from '@activepieces/pieces-common'; import { customFields, publicationId, subscriptionId } from '../common/props'; import { beehiivAuth } from '../common/auth'; import { beehiivApiCall } from '../common/client'; export const updateSubscriptionAction = createAction({ auth: beehiivAuth, name: 'update_subscription', displayName: 'Update Subscription', description: 'Update an existing subscription.', props: { publicationId: publicationId, subscriptionId: subscriptionId(true), tier: Property.StaticDropdown({ displayName: 'Subscription Tier', description: 'Set the tier for this subscription.', required: false, options: { options: [ { label: 'Free', value: 'free' }, { label: 'Premium', value: 'premium' }, ], }, }), stripe_customer_id: Property.ShortText({ displayName: 'Stripe Customer ID', description: 'The Stripe Customer ID of the subscription.', required: false, }), unsubscribe: Property.Checkbox({ displayName: 'Unsubscribe', description: 'Whether to unsubscribe this subscription from the publication.', required: false, }), custom_fields: customFields, }, async run(context) { const { publicationId, subscriptionId, tier, stripe_customer_id, unsubscribe } = context.propsValue; const custom_fields = context.propsValue.custom_fields ?? {}; const body: Record<string, unknown> = {}; if (tier !== undefined) { body['tier'] = tier; } if (stripe_customer_id !== undefined) { body['stripe_customer_id'] = stripe_customer_id; } if (unsubscribe !== undefined) { body['unsubscribe'] = unsubscribe; } const transformedCustomFields = Object.entries(custom_fields) .filter(([_, value]) => { if (Array.isArray(value)) { return value.length > 0; } return value !== undefined && value !== null && value !== ''; }) .map(([key, value]) => ({ name: key, value: value, })); if (transformedCustomFields.length > 0) { body['custom_fields'] = transformedCustomFields; } console.log(JSON.stringify(body)); const response = await beehiivApiCall({ apiKey: context.auth, method: HttpMethod.PUT, resourceUri: `/publications/${publicationId}/subscriptions/${subscriptionId}`, body, }); return response; }, });

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