From d553e0e066176e42eed5ae73b345aad89b35893b Mon Sep 17 00:00:00 2001
From: clauspeterhuebner
Date: Wed, 20 Nov 2024 00:57:59 +0100
Subject: [PATCH] insert switch if gmsuser has to be created or updated
---
.../graphql/resolver/util/sendUserToGms.ts | 29 ++++++++++++++-----
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/backend/src/graphql/resolver/util/sendUserToGms.ts b/backend/src/graphql/resolver/util/sendUserToGms.ts
index c21550b91..da5452d3d 100644
--- a/backend/src/graphql/resolver/util/sendUserToGms.ts
+++ b/backend/src/graphql/resolver/util/sendUserToGms.ts
@@ -1,7 +1,7 @@
import { Community as DbCommunity } from '@entity/Community'
import { User as DbUser } from '@entity/User'
-import { createGmsUser } from '@/apis/gms/GmsClient'
+import { createGmsUser, updateGmsUser } from '@/apis/gms/GmsClient'
import { GmsUser } from '@/apis/gms/model/GmsUser'
import { CONFIG } from '@/config'
import { LogError } from '@/server/LogError'
@@ -14,13 +14,26 @@ export async function sendUserToGms(user: DbUser, homeCom: DbCommunity): Promise
logger.debug('User send to GMS:', user)
const gmsUser = new GmsUser(user)
try {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
- if (await createGmsUser(homeCom.gmsApiKey, gmsUser)) {
- logger.debug('GMS user published successfully:', gmsUser)
- user.gmsRegistered = true
- user.gmsRegisteredAt = new Date()
- await DbUser.save(user)
- logger.debug('mark user as gms published:', user)
+ if (!user.gmsRegistered && user.gmsRegisteredAt === null) {
+ logger.debug('create user in gms:', gmsUser)
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
+ if (await createGmsUser(homeCom.gmsApiKey, gmsUser)) {
+ logger.debug('GMS user published successfully:', gmsUser)
+ user.gmsRegistered = true
+ user.gmsRegisteredAt = new Date()
+ await DbUser.save(user)
+ logger.debug('mark user as gms published:', user)
+ }
+ } else {
+ logger.debug('update user in gms:', gmsUser)
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
+ if (await updateGmsUser(homeCom.gmsApiKey, gmsUser)) {
+ logger.debug('GMS user published successfully:', gmsUser)
+ user.gmsRegistered = true
+ user.gmsRegisteredAt = new Date()
+ await DbUser.save(user)
+ logger.debug('mark user as gms published:', user)
+ }
}
} catch (err) {
if (CONFIG.GMS_CREATE_USER_THROW_ERRORS) {