From 73382fce3d4a8647cd3f12709076198b8e8d376e Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Thu, 14 Mar 2024 02:07:16 +0100 Subject: [PATCH] add controls for gms-errors to log or throw --- backend/src/config/index.ts | 1 + backend/src/graphql/resolver/UserResolver.ts | 6 +++++- backend/src/graphql/resolver/util/sendUserToGms.ts | 7 ++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 0dbc0ea5a..250a0f2ea 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -143,6 +143,7 @@ const federation = { const gms = { GMS_ACTIVE: process.env.GMS_ACTIVE === 'true' || false, + GMS_CREATE_USER_THROW_ERRORS: process.env.GMS_CREATE_USER_THROW_ERRORS === 'true' || false, // koordinates of Illuminz-instance of GMS GMS_URL: process.env.GMS_HOST ?? 'http://localhost:4044/', } diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 261d84caa..a1aca1f8a 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -376,7 +376,11 @@ export class UserResolver { await sendUserToGms(dbUser, homeCom) } } catch (err) { - logger.error('Error publishing new created user to GMS:', err) + if (CONFIG.GMS_CREATE_USER_THROW_ERRORS) { + throw new LogError('Error publishing new created user to GMS:', err) + } else { + logger.error('Error publishing new created user to GMS:', err) + } } } return new User(dbUser) diff --git a/backend/src/graphql/resolver/util/sendUserToGms.ts b/backend/src/graphql/resolver/util/sendUserToGms.ts index 335141ffe..c21550b91 100644 --- a/backend/src/graphql/resolver/util/sendUserToGms.ts +++ b/backend/src/graphql/resolver/util/sendUserToGms.ts @@ -3,6 +3,7 @@ import { User as DbUser } from '@entity/User' import { createGmsUser } from '@/apis/gms/GmsClient' import { GmsUser } from '@/apis/gms/model/GmsUser' +import { CONFIG } from '@/config' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' @@ -22,6 +23,10 @@ export async function sendUserToGms(user: DbUser, homeCom: DbCommunity): Promise logger.debug('mark user as gms published:', user) } } catch (err) { - logger.warn('publishing user fails with ', err) + if (CONFIG.GMS_CREATE_USER_THROW_ERRORS) { + throw new LogError('publishing user fails with ', err) + } else { + logger.warn('publishing user fails with ', err) + } } }