diff --git a/lib/googlecalendar.ts b/lib/googlecalendar.ts index 085de07..2ffd100 100644 --- a/lib/googlecalendar.ts +++ b/lib/googlecalendar.ts @@ -1,14 +1,20 @@ import { google } from 'googleapis' import { Booking } from '../db/booking' -const keyFile = process.env.GOOGLE_SERVICE_ACCOUNT_KEY_FILE const calendarId = process.env.GOOGLE_CALENDAR_ID +let credentials + +try { + credentials = JSON.parse(process.env.GOOGLE_SERVICE_ACCOUNT_KEY_JSON); +} catch (error) { + console.error('Unable to parse process.env.GOOGLE_SERVICE_ACCOUNT_KEY_JSON - invalid JSON?'); + throw error; +} const auth = new google.auth.GoogleAuth({ - keyFile, + credentials, scopes: [ 'https://www.googleapis.com/auth/calendar', - 'https://www.googleapis.com/auth/calendar.readonly', ], }) @@ -39,8 +45,9 @@ function getSummary(booking: Partial): string { } export async function createCalendarEvent(booking: Booking): Promise { + const authInstance = await auth.getClient(); const response = await calendar.events.insert({ - auth, + auth: authInstance, calendarId, requestBody: { summary: getSummary(booking),