index.ts•1.72 kB
import { createCustomApiCallAction } from '@activepieces/pieces-common';
import {
OAuth2PropertyValue,
PieceAuth,
createPiece,
} from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { gmailSendEmailAction } from './lib/actions/send-email-action';
import { gmailNewEmailTrigger } from './lib/triggers/new-email';
import { gmailNewLabeledEmailTrigger } from './lib/triggers/new-labeled-email';
export const gmailAuth = 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/gmail.send',
'email',
'https://www.googleapis.com/auth/gmail.readonly',
'https://www.googleapis.com/auth/gmail.compose',
],
});
export const gmail = createPiece({
minimumSupportedRelease: '0.30.0',
logoUrl: 'https://cdn.activepieces.com/pieces/gmail.png',
categories: [
PieceCategory.COMMUNICATION,
PieceCategory.BUSINESS_INTELLIGENCE,
],
actions: [
gmailSendEmailAction,
createCustomApiCallAction({
baseUrl: () => 'https://gmail.googleapis.com/gmail/v1',
auth: gmailAuth,
authMapping: async (auth) => ({
Authorization: `Bearer ${(auth as OAuth2PropertyValue).access_token}`,
}),
}),
],
displayName: 'Gmail',
description: 'Email service by Google',
authors: [
'kanarelo',
'abdullahranginwala',
'BastienMe',
'Salem-Alaa',
'kishanprmr',
'MoShizzle',
'AbdulTheActivePiecer',
'khaledmashaly',
'abuaboud',
'AdamSelene',
],
triggers: [gmailNewEmailTrigger, gmailNewLabeledEmailTrigger],
auth: gmailAuth,
});