From 46e51dcede09b310ef54dcd41e620139c0798d76 Mon Sep 17 00:00:00 2001 From: Georg Bremer Date: Thu, 11 Jul 2024 14:59:24 +0200 Subject: [PATCH] feat: GCal event series for Standup --- .../graphql/public/mutations/startTeamPrompt.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/server/graphql/public/mutations/startTeamPrompt.ts b/packages/server/graphql/public/mutations/startTeamPrompt.ts index 393e802e1b7..322ee844986 100644 --- a/packages/server/graphql/public/mutations/startTeamPrompt.ts +++ b/packages/server/graphql/public/mutations/startTeamPrompt.ts @@ -1,5 +1,6 @@ import {SubscriptionChannel} from 'parabol-client/types/constEnums' import getRethink from '../../../database/rethinkDriver' +import getKysely from '../../../postgres/getKysely' import updateTeamByTeamId from '../../../postgres/queries/updateTeamByTeamId' import RedisLockQueue from '../../../utils/RedisLockQueue' import {analytics} from '../../../utils/analytics/analytics' @@ -61,22 +62,31 @@ const startTeamPrompt: MutationResolvers['startTeamPrompt'] = async ( ]) const {id: meetingId} = meeting - if (rrule) { - const meetingSeries = await startNewMeetingSeries(meeting, rrule, name) + const meetingSeries = rrule && (await startNewMeetingSeries(meeting, rrule, name)) + if (meetingSeries) { // meeting was modified if a new meeting series was created dataLoader.get('newMeetings').clear(meetingId) analytics.recurrenceStarted(viewer, meetingSeries) } IntegrationNotifier.startMeeting(dataLoader, meetingId, teamId) analytics.meetingStarted(viewer, meeting) - const {error} = await createGcalEvent({ + const {error, gcalSeriesId} = await createGcalEvent({ name: eventName, gcalInput, meetingId, teamId, viewerId, + rrule, dataLoader }) + if (meetingSeries && gcalSeriesId) { + const pg = getKysely() + await pg + .updateTable('MeetingSeries') + .set({gcalSeriesId}) + .where('id', '=', meetingSeries.id) + .execute() + } const data = {teamId, meetingId: meetingId, hasGcalError: !!error?.message} publish(SubscriptionChannel.TEAM, teamId, 'StartTeamPromptSuccess', data, subOptions) return data