From 3f950a9bb8adbae50d25efa0e4d86752df9d195d Mon Sep 17 00:00:00 2001 From: elweyn Date: Mon, 15 Aug 2022 11:02:05 +0200 Subject: [PATCH 1/7] Method to retrieve not registered emails. --- backend/src/auth/RIGHTS.ts | 1 + .../src/graphql/resolver/KlicktippResolver.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/backend/src/auth/RIGHTS.ts b/backend/src/auth/RIGHTS.ts index d5e2cc7ce..8e51c182e 100644 --- a/backend/src/auth/RIGHTS.ts +++ b/backend/src/auth/RIGHTS.ts @@ -48,4 +48,5 @@ export enum RIGHTS { LIST_CONTRIBUTION_LINKS = 'LIST_CONTRIBUTION_LINKS', DELETE_CONTRIBUTION_LINK = 'DELETE_CONTRIBUTION_LINK', UPDATE_CONTRIBUTION_LINK = 'UPDATE_CONTRIBUTION_LINK', + ADMIN_RETRIEVE_NOT_REGISTERED_EMAILS = 'ADMIN_RETRIEVE_NOT_REGISTERED_EMAILS', } diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index ce9a097e2..fecf6f08c 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -7,6 +7,8 @@ import { } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import SubscribeNewsletterArgs from '@arg/SubscribeNewsletterArgs' +import { User } from '@entity/User' +import { backendLogger } from '@/server/logger' @Resolver() export class KlicktippResolver { @@ -35,4 +37,21 @@ export class KlicktippResolver { ): Promise { return await klicktippSignIn(email, language) } + + @Authorized([RIGHTS.ADMIN_RETRIEVE_NOT_REGISTERED_EMAILS]) + @Query(() => [String]) + async retrieveNotRegisteredEmails(): Promise { + const users = await User.find() + const notRegisteredUser = [] + for (let i = 0; i < users.length; i++) { + const user = users[i] + try { + await getKlickTippUser(user.email) + } catch (err) { + notRegisteredUser.push(user.email) + backendLogger.error(`Error with email: ${user.email}; ${err}`) + } + } + return notRegisteredUser + } } From 32b5bf3d6b02adf701b9b071fefa14d7a7f2251c Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 16 Aug 2022 07:01:33 +0200 Subject: [PATCH 2/7] Remove resolver method for klickTipp not registered users. --- .../src/graphql/resolver/KlicktippResolver.ts | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index fecf6f08c..07b872c43 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -37,21 +37,4 @@ export class KlicktippResolver { ): Promise { return await klicktippSignIn(email, language) } - - @Authorized([RIGHTS.ADMIN_RETRIEVE_NOT_REGISTERED_EMAILS]) - @Query(() => [String]) - async retrieveNotRegisteredEmails(): Promise { - const users = await User.find() - const notRegisteredUser = [] - for (let i = 0; i < users.length; i++) { - const user = users[i] - try { - await getKlickTippUser(user.email) - } catch (err) { - notRegisteredUser.push(user.email) - backendLogger.error(`Error with email: ${user.email}; ${err}`) - } - } - return notRegisteredUser - } } From 49de7366f44d47ac3c2e4449454f3aad6b4db14f Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 16 Aug 2022 07:02:07 +0200 Subject: [PATCH 3/7] Add method to log every user that is not registered at KlickTipp. --- backend/src/klicktipp.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 backend/src/klicktipp.ts diff --git a/backend/src/klicktipp.ts b/backend/src/klicktipp.ts new file mode 100644 index 000000000..3139cd296 --- /dev/null +++ b/backend/src/klicktipp.ts @@ -0,0 +1,28 @@ +import connection from '@/typeorm/connection' +import { getKlickTippUser } from './apis/KlicktippController' +import { User } from '../../database/entity/User' +import { getConnection } from '@dbTools/typeorm' + +export async function retrieveNotRegisteredEmails(): Promise { + const con = await connection() + if (!con) { + throw new Error('No connection to database') + } + const users = await User.find() + const notRegisteredUser = [] + for (let i = 0; i < users.length; i++) { + const user = users[i] + try { + await getKlickTippUser(user.email) + } catch (err) { + notRegisteredUser.push(user.email) + // eslint-disable-next-line no-console + console.log(`${user.email}`) + } + } + await con.close() + console.log('User die nicht bei KlickTipp vorhanden sind: ', notRegisteredUser) + return notRegisteredUser +} + +retrieveNotRegisteredEmails() From ea85f9c3ae17d458eb917fdd6f0481419fface59 Mon Sep 17 00:00:00 2001 From: elweyn Date: Tue, 16 Aug 2022 07:02:34 +0200 Subject: [PATCH 4/7] Add yarn klicktipp to start the script of not registered user. --- backend/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/package.json b/backend/package.json index c56c8e960..f3033a620 100644 --- a/backend/package.json +++ b/backend/package.json @@ -14,7 +14,8 @@ "dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r tsconfig-paths/register src/index.ts", "lint": "eslint --max-warnings=0 --ext .js,.ts .", "test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --coverage --forceExit --detectOpenHandles", - "seed": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/seeds/index.ts" + "seed": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/seeds/index.ts", + "klicktipp": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/klicktipp.ts" }, "dependencies": { "@types/jest": "^27.0.2", From 0fb1dcdb3e6a080af8810239ab170f1e36086a3e Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Sep 2022 10:34:09 +0200 Subject: [PATCH 5/7] Moved klicktipp.ts to src/util --- backend/package.json | 2 +- backend/src/{ => util}/klicktipp.ts | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename backend/src/{ => util}/klicktipp.ts (100%) diff --git a/backend/package.json b/backend/package.json index e1af5c0ed..858aa1328 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,7 +15,7 @@ "lint": "eslint --max-warnings=0 --ext .js,.ts .", "test": "cross-env TZ=UTC NODE_ENV=development jest --runInBand --coverage --forceExit --detectOpenHandles", "seed": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/seeds/index.ts", - "klicktipp": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/klicktipp.ts" + "klicktipp": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/util/klicktipp.ts" }, "dependencies": { "@types/jest": "^27.0.2", diff --git a/backend/src/klicktipp.ts b/backend/src/util/klicktipp.ts similarity index 100% rename from backend/src/klicktipp.ts rename to backend/src/util/klicktipp.ts From e50b80997bcfc833e2bc3167af01d770c80e7340 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Sep 2022 10:38:34 +0200 Subject: [PATCH 6/7] Fix imports. --- backend/src/graphql/resolver/KlicktippResolver.ts | 2 -- backend/src/util/klicktipp.ts | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index 07b872c43..ce9a097e2 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -7,8 +7,6 @@ import { } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import SubscribeNewsletterArgs from '@arg/SubscribeNewsletterArgs' -import { User } from '@entity/User' -import { backendLogger } from '@/server/logger' @Resolver() export class KlicktippResolver { diff --git a/backend/src/util/klicktipp.ts b/backend/src/util/klicktipp.ts index 3139cd296..42ed1ea3e 100644 --- a/backend/src/util/klicktipp.ts +++ b/backend/src/util/klicktipp.ts @@ -1,7 +1,6 @@ import connection from '@/typeorm/connection' -import { getKlickTippUser } from './apis/KlicktippController' -import { User } from '../../database/entity/User' -import { getConnection } from '@dbTools/typeorm' +import { getKlickTippUser } from '@/apis/KlicktippController' +import { User } from '@entity/User' export async function retrieveNotRegisteredEmails(): Promise { const con = await connection() From ed0900b735b19dcc0235e85c244155626acfc4a1 Mon Sep 17 00:00:00 2001 From: elweyn Date: Wed, 7 Sep 2022 11:34:08 +0200 Subject: [PATCH 7/7] Add lint command to ignore console.log statement. --- backend/src/util/klicktipp.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/util/klicktipp.ts b/backend/src/util/klicktipp.ts index 42ed1ea3e..c8f83acc3 100644 --- a/backend/src/util/klicktipp.ts +++ b/backend/src/util/klicktipp.ts @@ -20,6 +20,7 @@ export async function retrieveNotRegisteredEmails(): Promise { } } await con.close() + // eslint-disable-next-line no-console console.log('User die nicht bei KlickTipp vorhanden sind: ', notRegisteredUser) return notRegisteredUser }