Skip to main content
Glama
props.ts3.71 kB
import { Property } from '@activepieces/pieces-framework'; import { makeRequest } from './client'; import { HttpMethod } from '@activepieces/pieces-common'; import { appfollowAuth } from './auth'; export function formatDate(epochMS: any) { const d = new Date(epochMS); const year = d.getFullYear(); const month = String(d.getMonth() + 1).padStart(2, '0'); const day = String(d.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } export const collection_idDropdown = Property.Dropdown({ auth: appfollowAuth, displayName: 'Collection Name', description: 'Select the collection name', required: true, refreshers: [], options: async ({ auth }) => { if (!auth) { return { disabled:true, options: [], placeholder: 'Please configure the auth first', }; } try { const response = await makeRequest( auth.secret_text, HttpMethod.GET, `/account/apps` ); const apps = response.apps; return { disabled:false, options: apps.map((app: any) => ({ label: app.title, value: app.id, })), }; } catch (error) { return { disabled:true, options: [], placeholder: 'Error fetching collections', }; } }, }); export const application_ext_idDropdown = Property.Dropdown({ auth: appfollowAuth, displayName: 'Application', description: 'Select the application', required: true, refreshers: ['collection_id'], options: async ({ auth, collection_id }) => { if (!auth) { return { disabled:true, options: [], placeholder: 'Please configure the auth first', }; } if (!collection_id) { return { disabled:true, options: [], placeholder: 'Please select application first', }; } try { const response = await makeRequest( auth.secret_text, HttpMethod.GET, `/account/apps/app?apps_id=${collection_id}` ); console.debug("dsdsdsdsdsdsdssdss",response); const apps = response.apps_app; return { disabled:false, options: apps.map((app: any) => ({ label: app.app.title, value: app.app.ext_id, })), }; } catch (error) { return { disabled:true, options: [], placeholder: 'Error fetching applications', }; } }, }); export const review_ID_Dropdown = Property.Dropdown({ auth: appfollowAuth, displayName: 'Review ID', description: 'Select the Review ID', required: true, refreshers: ['app_ext_id', 'toDate', 'fromDate'], options: async ({ auth, app_ext_id, toDate, fromDate }) => { if (!auth) { return { disabled:true, options: [], placeholder: 'Please configure the auth first', }; } if (!app_ext_id || !toDate || !fromDate) { return { disabled:true, options: [], placeholder: 'Please select application and date range first', }; } try { const response = await makeRequest( auth.secret_text, HttpMethod.GET, `/reviews?ext_id=${app_ext_id}&from=${fromDate}&to=${toDate}` ); const reviews = response.reviews.list; return { disabled:false, options: reviews.map((review: any) => ({ label: `ID: ${review.review_id} - ${review.content.substring( 0, 30 )}...`, value: review.review_id, })), }; } catch (error) { return { disabled:true, options: [], placeholder: 'Error fetching Review IDs', }; } }, });

Latest Blog Posts

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