From 3a183918c5306b868fdb8b7d653bdef709143b5b Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 4 Aug 2022 11:34:46 +0200 Subject: [PATCH 1/7] Change checkOptInCode to check if emailChecked before changing optInState. --- backend/src/graphql/resolver/UserResolver.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index a89a8cb0b..bd1fff918 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -187,7 +187,7 @@ const newEmailOptIn = (userId: number): LoginEmailOptIn => { // if optIn does not exits, it is created export const checkOptInCode = async ( optInCode: LoginEmailOptIn | undefined, - userId: number, + user: DbUser, optInType: OptInType = OptInType.EMAIL_OPT_IN_REGISTER, ): Promise => { logger.info(`checkOptInCode... ${optInCode}`) @@ -207,15 +207,18 @@ export const checkOptInCode = async ( optInCode.updatedAt = new Date() optInCode.resendCount++ } else { - logger.trace('create new OptIn for userId=' + userId) - optInCode = newEmailOptIn(userId) + logger.trace('create new OptIn for userId=' + user.id) + optInCode = newEmailOptIn(user.id) + } + + if (user.emailChecked) { + optInCode.emailOptInTypeId = optInType } - optInCode.emailOptInTypeId = optInType await LoginEmailOptIn.save(optInCode).catch(() => { logger.error('Unable to save optin code= ' + optInCode) throw new Error('Unable to save optin code.') }) - logger.debug(`checkOptInCode...successful: ${optInCode} for userid=${userId}`) + logger.debug(`checkOptInCode...successful: ${optInCode} for userid=${user.id}`) return optInCode } @@ -493,7 +496,7 @@ export class UserResolver { userId: user.id, }) - optInCode = await checkOptInCode(optInCode, user.id, OptInType.EMAIL_OPT_IN_RESET_PASSWORD) + optInCode = await checkOptInCode(optInCode, user, OptInType.EMAIL_OPT_IN_RESET_PASSWORD) logger.info(`optInCode for ${email}=${optInCode}`) // eslint-disable-next-line @typescript-eslint/no-unused-vars const emailSent = await sendResetPasswordEmailMailer({ From f42ba0557295453104bd9b619a16b3e3915381aa Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 4 Aug 2022 11:35:34 +0200 Subject: [PATCH 2/7] Change call of checkOptInCode since signature changed. --- backend/src/graphql/resolver/AdminResolver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 84ae09cf8..b7ac63842 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -501,7 +501,7 @@ export class AdminResolver { order: { updatedAt: 'DESC' }, }) - optInCode = await checkOptInCode(optInCode, user.id) + optInCode = await checkOptInCode(optInCode, user) // eslint-disable-next-line @typescript-eslint/no-unused-vars const emailSent = await sendAccountActivationEmail({ From 6c748fdb30e30251a74150b8cb9b7a2c1a92b47f Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 4 Aug 2022 11:46:48 +0200 Subject: [PATCH 3/7] Add new logger for klicktipp. --- backend/log4js-config.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/backend/log4js-config.json b/backend/log4js-config.json index 451da56ab..848a4fa79 100644 --- a/backend/log4js-config.json +++ b/backend/log4js-config.json @@ -25,6 +25,14 @@ "keepFileExt" : true, "fileNameSep" : "_" }, + "klicktipp": + { + "type": "dateFile", + "filename": "../logs/backend/klicktipp.log", + "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", + "keepFileExt" : true, + "fileNameSep" : "_" + }, "errorFile": { "type": "dateFile", @@ -90,6 +98,17 @@ "level": "debug", "enableCallStack": true }, + "klicktipp": + { + "appenders": + [ + "klicktipp", + "out", + "errors" + ], + "level": "debug", + "enableCallStack": true + }, "http": { "appenders": From 87055e732c5242791ced8b158d3d9c2f2b331514 Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 4 Aug 2022 11:47:10 +0200 Subject: [PATCH 4/7] Define klicktipp logger. --- backend/src/server/logger.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/server/logger.ts b/backend/src/server/logger.ts index cbc8c9b9b..0cfa5689b 100644 --- a/backend/src/server/logger.ts +++ b/backend/src/server/logger.ts @@ -12,7 +12,8 @@ log4js.configure(options) const apolloLogger = log4js.getLogger('apollo') const backendLogger = log4js.getLogger('backend') +const klickTippLogger = log4js.getLogger('klicktipp') backendLogger.addContext('user', 'unknown') -export { apolloLogger, backendLogger } +export { apolloLogger, backendLogger, klickTippLogger } From 174d592d5a6b4140f1af164aae7dcc00555bed4e Mon Sep 17 00:00:00 2001 From: elweyn Date: Thu, 4 Aug 2022 11:47:55 +0200 Subject: [PATCH 5/7] Log error for klicktipp for not found users. --- backend/src/middleware/klicktippMiddleware.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index b3699f29b..5f0c28477 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -2,6 +2,7 @@ import { MiddlewareFn } from 'type-graphql' import { /* klicktippSignIn, */ getKlickTippUser } from '@/apis/KlicktippController' import { KlickTipp } from '@model/KlickTipp' import CONFIG from '@/config' +import { klickTippLogger as logger } from '@/server/logger' // export const klicktippRegistrationMiddleware: MiddlewareFn = async ( // // Only for demo @@ -29,7 +30,9 @@ export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( if (klickTippUser) { klickTipp = new KlickTipp(klickTippUser) } - } catch (err) {} + } catch (err) { + logger.info(`Their is no user for (email='${result.email}') ${err}`) + } } result.klickTipp = klickTipp return result From ad9202efeda70539223812d214c9aee9dd0dbcc2 Mon Sep 17 00:00:00 2001 From: Hannes Heine Date: Thu, 11 Aug 2022 14:57:17 +0200 Subject: [PATCH 6/7] Update backend/src/middleware/klicktippMiddleware.ts Co-authored-by: Moriz Wahl --- backend/src/middleware/klicktippMiddleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 5f0c28477..5bd1484d1 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -31,7 +31,7 @@ export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( klickTipp = new KlickTipp(klickTippUser) } } catch (err) { - logger.info(`Their is no user for (email='${result.email}') ${err}`) + logger.info(`There is no user for (email='${result.email}') ${err}`) } } result.klickTipp = klickTipp From d4cd6c2b30735b2c902d2676cb5c2f748bbbf71d Mon Sep 17 00:00:00 2001 From: Hannes Heine Date: Thu, 11 Aug 2022 15:07:48 +0200 Subject: [PATCH 7/7] Update klicktippMiddleware.ts Change log level from info to error --- backend/src/middleware/klicktippMiddleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 5bd1484d1..6bdaa63fd 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -31,7 +31,7 @@ export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( klickTipp = new KlickTipp(klickTippUser) } } catch (err) { - logger.info(`There is no user for (email='${result.email}') ${err}`) + logger.error(`There is no user for (email='${result.email}') ${err}`) } } result.klickTipp = klickTipp