diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index b778ebfad..09eee3fb7 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -26,7 +26,11 @@ export const signout = async (email: string, language: string): Promise return result } -export const userTags = async (email: string): Promise => { +export const unsubscribe = async (email: string): Promise => { + return await klicktippConnector.unsubscribe(email) +} + +export const getKlickTippUser = async (email: string): Promise => { const isLogin = await loginKlicktippUser() if (isLogin) { const subscriberId = await klicktippConnector.subscriberSearch(email) diff --git a/backend/src/graphql/resolvers/KlicktippResolver.ts b/backend/src/graphql/resolvers/KlicktippResolver.ts index 57735cd85..48ca46782 100644 --- a/backend/src/graphql/resolvers/KlicktippResolver.ts +++ b/backend/src/graphql/resolvers/KlicktippResolver.ts @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { Resolver, Query, Authorized, Arg } from 'type-graphql' -import { userTags, getKlicktippTagMap } from '../../apis/KlicktippController' +import { getKlickTippUser, getKlicktippTagMap } from '../../apis/KlicktippController' import CONFIG from '../../config' import { TransactionList } from '../models/Transaction' @@ -10,15 +10,11 @@ import { TransactionList } from '../models/Transaction' export class KlicktippResolver { @Query(() => String) async getKlicktippUser(@Arg('email') email: string): Promise { - const userTagList = await userTags(email) - console.log('userTags', userTagList) - return userTagList + return await getKlickTippUser(email) } @Query(() => String) async getKlicktippTagMap(): Promise { - const klicktippTagMap = await getKlicktippTagMap() - console.log('klicktippTagMap', klicktippTagMap) - return 'klicktippTagMap' + return await getKlicktippTagMap() } } diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index 8db9ce701..70523be21 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -16,13 +16,17 @@ import { UpdateUserInfosArgs, } from '../inputs/LoginUserInput' import { apiPost, apiGet } from '../../apis/HttpRequest' -import { klicktippRegistrationMiddleware } from '../../middleware/klicktippMiddleware' +import { + klicktippRegistrationMiddleware, + klicktippNewsletterStateMiddleware, +} from '../../middleware/klicktippMiddleware' import encode from '../../jwt/encode' import { CheckEmailResponse } from '../models/CheckEmailResponse' @Resolver() export class UserResolver { @Query(() => String) + @UseMiddleware(klicktippNewsletterStateMiddleware) async login(@Args() { email, password }: UnsecureLoginArgs): Promise { email = email.trim().toLowerCase() const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password }) diff --git a/backend/src/middleware/klicktippMiddleware.ts b/backend/src/middleware/klicktippMiddleware.ts index 2f7af8cad..04902fa65 100644 --- a/backend/src/middleware/klicktippMiddleware.ts +++ b/backend/src/middleware/klicktippMiddleware.ts @@ -1,5 +1,6 @@ import { MiddlewareFn } from 'type-graphql' -import { signin } from '../apis/KlicktippController' +import { signin, getKlickTippUser } from '../apis/KlicktippController' +import decode from '../jwt/decode' export const klicktippRegistrationMiddleware: MiddlewareFn = async ( // Only for demo @@ -13,3 +14,15 @@ export const klicktippRegistrationMiddleware: MiddlewareFn = async ( signin(result.email, result.language, result.firstName, result.lastName) return result } + +export const klicktippNewsletterStateMiddleware: MiddlewareFn = async ( + { root, args, context, info }, + next, +) => { + const result = await next() + const decodedResult = decode(result) + console.log('result', decodedResult) + const klickTippUser = getKlickTippUser(decodedResult.email) + console.log('klickTippUser', klickTippUser) + return result +} diff --git a/backend/src/middleware/userResolverMiddleware.ts b/backend/src/middleware/userResolverMiddleware.ts new file mode 100644 index 000000000..e69de29bb