From a8eacd30a16b19bc2ef81885d9deecd56f377a0f Mon Sep 17 00:00:00 2001 From: Guillim Date: Tue, 3 Jun 2025 14:23:36 +0200 Subject: [PATCH] better logging of calendar failures (#12431) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit better logging to troubleshoot calendar events failure : ``` [Nest] 1 -  [GoogleCalendarGetEventsService] Error: internal_failure ``` --- .../google-calendar-get-events.service.ts | 4 +++ .../utils/parse-gaxios-error.util.ts | 5 +++ .../google-oauth2-client-manager.service.ts | 32 +++++++++++++------ .../oauth2-client-manager.module.ts | 3 +- 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/services/google-calendar-get-events.service.ts b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/services/google-calendar-get-events.service.ts index d69bc382a..53383ee25 100644 --- a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/services/google-calendar-get-events.service.ts +++ b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/services/google-calendar-get-events.service.ts @@ -81,6 +81,10 @@ export class GoogleCalendarGetEventsService { } private handleError(error: GaxiosError) { + this.logger.error( + `Error in ${GoogleCalendarGetEventsService.name} - getCalendarEvents`, + error, + ); if ( error.code && [ diff --git a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/utils/parse-gaxios-error.util.ts b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/utils/parse-gaxios-error.util.ts index a1fa42dbb..2fd394fca 100644 --- a/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/utils/parse-gaxios-error.util.ts +++ b/packages/twenty-server/src/modules/calendar/calendar-event-import-manager/drivers/google-calendar/utils/parse-gaxios-error.util.ts @@ -1,3 +1,5 @@ +import { Logger } from '@nestjs/common'; + import { GaxiosError } from 'gaxios'; import { @@ -9,6 +11,7 @@ import { MessageNetworkExceptionCode } from 'src/modules/messaging/message-impor export const parseGaxiosError = ( error: GaxiosError, ): CalendarEventImportDriverException => { + const logger = new Logger(parseGaxiosError.name); const { code } = error; switch (code) { @@ -23,6 +26,8 @@ export const parseGaxiosError = ( ); default: + logger.error(error); + return new CalendarEventImportDriverException( error.message, CalendarEventImportDriverExceptionCode.UNKNOWN_NETWORK_ERROR, diff --git a/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service.ts b/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service.ts index d5c7cb89c..99d668a72 100644 --- a/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service.ts +++ b/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import { OAuth2Client } from 'google-auth-library'; import { google } from 'googleapis'; @@ -7,7 +7,10 @@ import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twent @Injectable() export class GoogleOAuth2ClientManagerService { - constructor(private readonly twentyConfigService: TwentyConfigService) {} + constructor( + private readonly twentyConfigService: TwentyConfigService, + private readonly logger: Logger, + ) {} public async getOAuth2Client(refreshToken: string): Promise { const gmailClientId = this.twentyConfigService.get('AUTH_GOOGLE_CLIENT_ID'); @@ -15,15 +18,24 @@ export class GoogleOAuth2ClientManagerService { 'AUTH_GOOGLE_CLIENT_SECRET', ); - const oAuth2Client = new google.auth.OAuth2( - gmailClientId, - gmailClientSecret, - ); + try { + const oAuth2Client = new google.auth.OAuth2( + gmailClientId, + gmailClientSecret, + ); - oAuth2Client.setCredentials({ - refresh_token: refreshToken, - }); + oAuth2Client.setCredentials({ + refresh_token: refreshToken, + }); - return oAuth2Client; + return oAuth2Client; + } catch (error) { + this.logger.error( + `Error in ${GoogleOAuth2ClientManagerService.name}`, + error, + ); + + throw error; + } } } diff --git a/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/oauth2-client-manager.module.ts b/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/oauth2-client-manager.module.ts index c70acc33f..85c706f50 100644 --- a/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/oauth2-client-manager.module.ts +++ b/packages/twenty-server/src/modules/connected-account/oauth2-client-manager/oauth2-client-manager.module.ts @@ -1,4 +1,4 @@ -import { Module } from '@nestjs/common'; +import { Logger, Module } from '@nestjs/common'; import { GoogleOAuth2ClientManagerService } from 'src/modules/connected-account/oauth2-client-manager/drivers/google/google-oauth2-client-manager.service'; import { MicrosoftOAuth2ClientManagerService } from 'src/modules/connected-account/oauth2-client-manager/drivers/microsoft/microsoft-oauth2-client-manager.service'; @@ -10,6 +10,7 @@ import { OAuth2ClientManagerService } from 'src/modules/connected-account/oauth2 OAuth2ClientManagerService, GoogleOAuth2ClientManagerService, MicrosoftOAuth2ClientManagerService, + Logger, ], exports: [OAuth2ClientManagerService, MicrosoftOAuth2ClientManagerService], })