-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.ts
46 lines (36 loc) · 1.25 KB
/
example.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { GoogleSpreadsheet } from 'google-spreadsheet';
import { JWT } from 'google-auth-library';
import { makeSubmissionFromBody } from './handler';
import { sendMail } from './sendEmail';
import clientSecret from './client_secret.json';
async function main() {
const email = process.env.EMAIL as string;
const body = {
speakerName: 'Bruno Macabeus',
twitterHandler: '@bmacabeus',
type: 'talk',
language: 'portuguese_or_english',
title: 'My Talk',
description: 'The Talk Description',
duration: 20,
speakerBio: 'My Bio',
speakerSocialMedias: 'Twitter: @bmacabeus',
speakerEmail: email,
} as const;
const submission = makeSubmissionFromBody(body);
const serviceAccountAuth = new JWT({
email: clientSecret.client_email,
key: clientSecret.private_key,
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
});
const googleSheetID = process.env.SHEET_ID!;
const sheet = new GoogleSpreadsheet(googleSheetID, serviceAccountAuth);
await sheet.loadInfo();
const tab = sheet.sheetsByTitle.CFP;
await tab.loadHeaderRow();
await tab.addRow(submission);
const result = await sendMail(submission);
console.log(result);
console.log(`E-mail sent to: ${email}`);
}
main().catch(console.error);