diff --git a/backend/jest.config.js b/backend/jest.config.js index ca12668fa..3b251916a 100644 --- a/backend/jest.config.js +++ b/backend/jest.config.js @@ -7,7 +7,7 @@ module.exports = { collectCoverageFrom: ['src/**/*.ts', '!**/node_modules/**', '!src/seeds/**', '!build/**'], coverageThreshold: { global: { - lines: 85, + lines: 86, }, }, setupFiles: ['/test/testSetup.ts'], diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index a4b5b6be7..a2a8f86cb 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -12,7 +12,7 @@ import KlicktippConnector from 'klicktipp-api' const klicktippConnector = new KlicktippConnector() -export const klicktippSignIn = async ( +export const subscribe = async ( email: string, language: string, firstName?: string, @@ -28,13 +28,6 @@ export const klicktippSignIn = async ( return result } -export const signout = async (email: string, language: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const apiKey = language === 'de' ? CONFIG.KLICKTIPP_APIKEY_DE : CONFIG.KLICKTIPP_APIKEY_EN - const result = await klicktippConnector.signoff(apiKey, email) - return result -} - export const unsubscribe = async (email: string): Promise => { if (!CONFIG.KLICKTIPP) return true const isLogin = await loginKlicktippUser() @@ -60,38 +53,6 @@ export const loginKlicktippUser = async (): Promise => { return await klicktippConnector.login(CONFIG.KLICKTIPP_USER, CONFIG.KLICKTIPP_PASSWORD) } -export const logoutKlicktippUser = async (): Promise => { - if (!CONFIG.KLICKTIPP) return true - return await klicktippConnector.logout() -} - -export const untagUser = async (email: string, tagId: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.untag(email, tagId) - } - return false -} - -export const tagUser = async (email: string, tagIds: string): Promise => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.tag(email, tagIds) - } - return false -} - -export const getKlicktippTagMap = async () => { - if (!CONFIG.KLICKTIPP) return true - const isLogin = await loginKlicktippUser() - if (isLogin) { - return await klicktippConnector.tagIndex() - } - return '' -} - export const addFieldsToSubscriber = async ( email: string, fields: any = {}, diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index 6875abcc5..81290bdb6 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -1,6 +1,6 @@ import { Resolver, Authorized, Mutation, Ctx } from 'type-graphql' -import { unsubscribe, klicktippSignIn } from '@/apis/KlicktippController' +import { unsubscribe, subscribe } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import { EVENT_NEWSLETTER_SUBSCRIBE, EVENT_NEWSLETTER_UNSUBSCRIBE } from '@/event/Events' import { Context, getUser } from '@/server/context' @@ -20,6 +20,6 @@ export class KlicktippResolver { async subscribeNewsletter(@Ctx() context: Context): Promise { const user = getUser(context) await EVENT_NEWSLETTER_SUBSCRIBE(user) - return klicktippSignIn(user.emailContact.email, user.language) + return subscribe(user.emailContact.email, user.language) } } diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 0957c8bab..ddfcf173a 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -20,6 +20,7 @@ import { ContributionLink } from '@model/ContributionLink' import { testEnvironment, headerPushMock, resetToken, cleanDB } from '@test/helpers' import { logger, i18n as localization } from '@test/testSetup' +import { subscribe } from '@/apis/KlicktippController' import { CONFIG } from '@/config' import { sendAccountActivationEmail, @@ -61,8 +62,6 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking' import { printTimeDuration } from '@/util/time' import { objectValuesToArray } from '@/util/utilities' -// import { klicktippSignIn } from '@/apis/KlicktippController' - jest.mock('@/emails/sendEmailVariants', () => { const originalModule = jest.requireActual('@/emails/sendEmailVariants') return { @@ -76,15 +75,13 @@ jest.mock('@/emails/sendEmailVariants', () => { } }) -/* - jest.mock('@/apis/KlicktippController', () => { return { __esModule: true, - klicktippSignIn: jest.fn(), + subscribe: jest.fn(), + getKlickTippUser: jest.fn(), } }) -*/ let admin: User let user: User @@ -556,16 +553,14 @@ describe('UserResolver', () => { expect(newUser.password.toString()).toEqual(encryptedPass.toString()) }) - /* it('calls the klicktipp API', () => { - expect(klicktippSignIn).toBeCalledWith( - user[0].email, - user[0].language, - user[0].firstName, - user[0].lastName, + expect(subscribe).toBeCalledWith( + newUser.emailContact.email, + newUser.language, + newUser.firstName, + newUser.lastName, ) }) - */ it('returns true', () => { expect(result).toBeTruthy() diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index e16de98b9..ca38ae769 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -35,7 +35,7 @@ import { User } from '@model/User' import { UserAdmin, SearchUsersResult } from '@model/UserAdmin' import { UserRepository } from '@repository/User' -import { klicktippSignIn } from '@/apis/KlicktippController' +import { subscribe } from '@/apis/KlicktippController' import { encode } from '@/auth/JWT' import { RIGHTS } from '@/auth/RIGHTS' import { CONFIG } from '@/config' @@ -468,9 +468,9 @@ export class UserResolver { // TODO do we always signUp the user? How to handle things with old users? if (userContact.emailOptInTypeId === OptInType.EMAIL_OPT_IN_REGISTER) { try { - await klicktippSignIn(userContact.email, user.language, user.firstName, user.lastName) + await subscribe(userContact.email, user.language, user.firstName, user.lastName) logger.debug( - `klicktippSignIn(${userContact.email}, ${user.language}, ${user.firstName}, ${user.lastName})`, + `subscribe(${userContact.email}, ${user.language}, ${user.firstName}, ${user.lastName})`, ) } catch (e) { logger.error('Error subscribing to klicktipp', e) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 4c5f8db4f..038bd3dd3 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -10,19 +10,6 @@ import { KlickTipp } from '@model/KlickTipp' import { getKlickTippUser } from '@/apis/KlicktippController' import { klickTippLogger as logger } from '@/server/logger' -// export const klicktippRegistrationMiddleware: MiddlewareFn = async ( -// // Only for demo -// /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -// { root, args, context, info }, -// next, -// ) => { -// // Do Something here before resolver is called -// const result = await next() -// // Do Something here after resolver is completed -// await klicktippSignIn(result.email, result.language, result.firstName, result.lastName) -// return result -// } - export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ { root, args, context, info },