From b376c5639f53db2800ed8ac65acce40faab886da Mon Sep 17 00:00:00 2001 From: elweyn Date: Sun, 5 Sep 2021 10:38:44 +0200 Subject: [PATCH] Added the language to the graphql create query, Implemented a KlicktippController that has every methode to communicate with Klicktipp, added a Klicktipp config block. --- backend/src/apis/KlicktippController.ts | 40 +++++++++++++++++++ backend/src/config/index.ts | 15 ++++--- backend/src/graphql/resolvers/UserResolver.ts | 15 ++----- 3 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 backend/src/apis/KlicktippController.ts diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts new file mode 100644 index 000000000..975c9173e --- /dev/null +++ b/backend/src/apis/KlicktippController.ts @@ -0,0 +1,40 @@ +import * as KlicktippAPI from '../apis/KlicktippAPI' +import CONFIG from '../config' + +export class KlicktippController { + private klicktippConnector: KlicktippAPI.KlicktippConnector + + constructor(service?: string) { + this.klicktippConnector = new KlicktippAPI.KlicktippConnector(service) + } + + async signin(email: string, language: string): Promise { + const fields = {} + const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN + const result = await this.klicktippConnector.signin(apiKey, email, fields) + return result + } + + async signout(email: string, language: string): Promise { + const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN + const result = await this.klicktippConnector.signoff(apiKey, email) + return result + } + + async userTags(email: string): Promise { + await this.loginKlicktippUser() + const subscriberId = await this.klicktippConnector.subscriberSearch(email) + const result = await this.klicktippConnector.subscriberGet(subscriberId) + console.log('The subscriber with the id: ', subscriberId, result) + return result + } + + private async loginKlicktippUser() { + return await this.klicktippConnector.login(CONFIG.KLICKTIPP_USER, CONFIG.KLICKTIPP_PASSWORD) + } + + async untagUser(email: string, tagid: string) { + await this.loginKlicktippUser() + return await this.klicktippConnector.untag(email, tagid) + } +} diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index f61c0b6e0..2659849f2 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -11,11 +11,6 @@ const server = { LOGIN_API_URL: process.env.LOGIN_API_URL || 'http://login-server:1201/', COMMUNITY_API_URL: process.env.COMMUNITY_API_URL || 'http://nginx/api/', GDT_API_URL: process.env.GDT_API_URL || 'https://gdt.gradido.net', - KLICKTTIPP_API_URL: process.env.KLICKTIPP_API_URL || 'https://api.klicktipp.com', - KLICKTIPP_USER: process.env.KLICKTIPP_USER || 'gradido_test', - KLICKTIPP_PASSWORD: process.env.KLICKTIPP_PASSWORD || 'secret321', - KLICKTIPP_APIKEY_DE: process.env.KLICKTIPP_APIKEY_DE || 'SomeFakeKeyDE', - KLICKTIPP_APIKEY_EN: process.env.KLICKTIPP_APIKEY_EN || 'SomeFakeKeyEN', } const database = { @@ -26,9 +21,17 @@ const database = { DB_DATABASE: process.env.DB_DATABASE || 'gradido_community', } +const klicktipp = { + KLICKTTIPP_API_URL: process.env.KLICKTIPP_API_URL || 'https://api.klicktipp.com', + KLICKTIPP_USER: process.env.KLICKTIPP_USER || 'gradido_test', + KLICKTIPP_PASSWORD: process.env.KLICKTIPP_PASSWORD || 'secret321', + KLICKTIPP_APIKEY_DE: process.env.KLICKTIPP_APIKEY_DE || 'SomeFakeKeyDE', + KLICKTIPP_APIKEY_EN: process.env.KLICKTIPP_APIKEY_EN || 'SomeFakeKeyEN', +} + // This is needed by graphql-directive-auth process.env.APP_SECRET = server.JWT_SECRET -const CONFIG = { ...server, ...database } +const CONFIG = { ...server, ...database, ...klicktipp } export default CONFIG diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index dacb3a974..aee202c6d 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -14,11 +14,11 @@ import { UpdateUserInfosArgs, } from '../inputs/LoginUserInput' import { apiPost, apiGet } from '../../apis/HttpRequest' -import { KlicktippConnector } from '../../apis/klicktippAPI' +import { KlicktippController } from '../../apis/KlicktippController' @Resolver() export class UserResolver { - private connector: KlicktippConnector = new KlicktippConnector(CONFIG.KLICKTTIPP_API_URL) + private connector: KlicktippController = new KlicktippController(CONFIG.KLICKTTIPP_API_URL) @Query(() => LoginResponse) async login(@Args() { email, password }: UnsecureLoginArgs): Promise { @@ -83,22 +83,13 @@ export class UserResolver { password, emailType: 2, login_after_register: true, + language: language, } const result = await apiPost(CONFIG.LOGIN_API_URL + 'createUser', payload) if (!result.success) { throw new Error(result.data) } - // const loginSuccessful = await this.connector.login( - // CONFIG.KLICKTIPP_USER, - // CONFIG.KLICKTIPP_PASSWORD, - // ) - // if (loginSuccessful) { - const fields = {} - const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN - await this.connector.signin(apiKey, email, fields) - // } - return 'success' }