- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
82 lines
2.8 KiB
TypeScript
82 lines
2.8 KiB
TypeScript
import {
|
|
OAuth2PropertyValue,
|
|
PieceAuth,
|
|
createPiece,
|
|
} from '@activepieces/pieces-framework';
|
|
|
|
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
|
import { PieceCategory } from '@activepieces/shared';
|
|
import { addPermission } from './lib/action/add-permission.action';
|
|
import { googleDriveCreateNewFolder } from './lib/action/create-new-folder';
|
|
import { googleDriveCreateNewTextFile } from './lib/action/create-new-text-file';
|
|
import { deletePermission } from './lib/action/delete-permission.action';
|
|
import { duplicateFileAction } from './lib/action/duplicate-file.action';
|
|
import { googleDriveGetResourceById } from './lib/action/get-file-by-id';
|
|
import { googleDriveListFiles } from './lib/action/list-files.action';
|
|
import { readFile } from './lib/action/read-file';
|
|
import { saveFileAsPdf } from './lib/action/save-file-as-pdf.action';
|
|
import { googleDriveSearchFolder } from './lib/action/search-folder-or-file.action';
|
|
import { googleDriveUploadFile } from './lib/action/upload-file';
|
|
import { newFile } from './lib/triggers/new-file';
|
|
import { newFolder } from './lib/triggers/new-folder';
|
|
import { setPublicAccess } from './lib/action/set-public-access';
|
|
import { moveFileAction } from './lib/action/move-file';
|
|
import { googleDriveDeleteFile } from './lib/action/delete-file';
|
|
import { googleDriveTrashFile } from './lib/action/send-to-trash';
|
|
|
|
export const googleDriveAuth = PieceAuth.OAuth2({
|
|
description: '',
|
|
authUrl: 'https://accounts.google.com/o/oauth2/auth',
|
|
tokenUrl: 'https://oauth2.googleapis.com/token',
|
|
required: true,
|
|
scope: ['https://www.googleapis.com/auth/drive'],
|
|
});
|
|
|
|
export const googleDrive = createPiece({
|
|
minimumSupportedRelease: '0.5.6',
|
|
logoUrl: 'https://cdn.activepieces.com/pieces/google-drive.png',
|
|
categories: [PieceCategory.CONTENT_AND_FILES],
|
|
displayName: 'Google Drive',
|
|
description: 'Cloud storage and file backup',
|
|
authors: [
|
|
'BastienMe',
|
|
'ArmanGiau3',
|
|
'Vitalini',
|
|
'pfernandez98',
|
|
'kanarelo',
|
|
'Salem-Alaa',
|
|
'kishanprmr',
|
|
'MoShizzle',
|
|
'AbdulTheActivePiecer',
|
|
'khaledmashaly',
|
|
'abuaboud',
|
|
'geekyme'
|
|
],
|
|
triggers: [newFile, newFolder],
|
|
actions: [
|
|
googleDriveCreateNewFolder,
|
|
googleDriveCreateNewTextFile,
|
|
googleDriveUploadFile,
|
|
readFile,
|
|
googleDriveGetResourceById,
|
|
googleDriveListFiles,
|
|
googleDriveSearchFolder,
|
|
duplicateFileAction,
|
|
saveFileAsPdf,
|
|
addPermission,
|
|
deletePermission,
|
|
setPublicAccess,
|
|
moveFileAction,
|
|
googleDriveDeleteFile,
|
|
googleDriveTrashFile,
|
|
createCustomApiCallAction({
|
|
baseUrl: () => 'https://www.googleapis.com/drive/v3',
|
|
auth: googleDriveAuth,
|
|
authMapping: async (auth) => ({
|
|
Authorization: `Bearer ${(auth).access_token}`,
|
|
}),
|
|
}),
|
|
],
|
|
auth: googleDriveAuth,
|
|
});
|