From c5a65da94c24bc8a0ac136c02b2eda0bd7cbbcb0 Mon Sep 17 00:00:00 2001 From: elweyn Date: Fri, 10 Sep 2021 11:45:41 +0200 Subject: [PATCH] Implementation of signup to Klicktipp. --- backend/src/apis/KlicktippController.ts | 12 ++++++++++-- backend/src/graphql/models/CheckEmailResponse.ts | 8 ++++++++ backend/src/graphql/resolvers/UserResolver.ts | 4 +++- backend/src/middleware/klicktippMiddleware.ts | 2 +- frontend/src/locales/de.json | 2 +- frontend/src/locales/en.json | 2 +- frontend/src/views/Pages/CheckEmail.vue | 4 ++-- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index 7c4969f45..7c380f0b0 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -5,8 +5,16 @@ import CONFIG from '../config' const klicktippConnector = new KlicktippConnector() -export const signin = async (email: string, language: string): Promise => { - const fields = {} +export const signin = async ( + email: string, + language: string, + firstName: string, + lastName: string, +): Promise => { + const fields = { + fieldFirstName: firstName, + fieldLastName: lastName, + } const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN const result = await klicktippConnector.signin(apiKey, email, fields) return result diff --git a/backend/src/graphql/models/CheckEmailResponse.ts b/backend/src/graphql/models/CheckEmailResponse.ts index be92951de..948739722 100644 --- a/backend/src/graphql/models/CheckEmailResponse.ts +++ b/backend/src/graphql/models/CheckEmailResponse.ts @@ -8,6 +8,8 @@ export class CheckEmailResponse { this.sessionId = json.session_id this.email = json.user.email this.language = json.user.language + this.firstName = json.user.first_name + this.lastName = json.user.last_name } @Field(() => Number) @@ -16,6 +18,12 @@ export class CheckEmailResponse { @Field(() => String) email: string + @Field(() => String) + firstName: string + + @Field(() => String) + lastName: string + @Field(() => String) language: string } diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index 4233aadb4..8db9ce701 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -166,7 +166,9 @@ export class UserResolver { @Query(() => CheckEmailResponse) @UseMiddleware(klicktippRegistrationMiddleware) async checkEmail(@Arg('optin') optin: string): Promise { - const result = await apiGet(CONFIG.LOGIN_API_URL + 'checkEmail/' + optin) + const result = await apiGet( + CONFIG.LOGIN_API_URL + 'loginViaEmailVerificationCode?emailVerificationCode=' + optin, + ) if (!result.success) { throw new Error(result.data) } diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 2fdeab33d..2f7af8cad 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -10,6 +10,6 @@ export const klicktippRegistrationMiddleware: MiddlewareFn = async ( // Do Something here before resolver is called const result = await next() // Do Something here after resolver is completed - signin(result.data.checkEmail.email, result.data.checkEmail.language) + signin(result.email, result.language, result.firstName, result.lastName) return result } diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index a0fc8f5e9..1720f8d00 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -127,7 +127,7 @@ }, "checkEmail": { "title": "Email wird verifiziert", - "error-text": "Email konnte nicht verifiziert werden." + "errorText": "Email konnte nicht verifiziert werden." }, "thx": { "title": "Danke!", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 8fd892324..005c3b914 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -127,7 +127,7 @@ }, "checkEmail": { "title": "Verifing email", - "error-text": "Could not verify the email." + "errorText": "Could not verify the email." }, "thx": { "title": "Thank you!", diff --git a/frontend/src/views/Pages/CheckEmail.vue b/frontend/src/views/Pages/CheckEmail.vue index aeffd200d..baeacb34f 100644 --- a/frontend/src/views/Pages/CheckEmail.vue +++ b/frontend/src/views/Pages/CheckEmail.vue @@ -5,10 +5,10 @@
-

{{ $t('check-email.title') }}

+

{{ $t('checkEmail.title') }}

- {{ $t('check-email.error-text') }} + {{ $t('checkEmail.errorText') }}