WIP: Adding newsletterState to the user when login is called over a middleware.

This commit is contained in:
elweyn 2021-09-15 09:59:07 +02:00
parent e931b394ec
commit e60c38819f
5 changed files with 27 additions and 10 deletions

View File

@ -26,7 +26,11 @@ export const signout = async (email: string, language: string): Promise<boolean>
return result
}
export const userTags = async (email: string): Promise<any> => {
export const unsubscribe = async (email: string): Promise<boolean> => {
return await klicktippConnector.unsubscribe(email)
}
export const getKlickTippUser = async (email: string): Promise<any> => {
const isLogin = await loginKlicktippUser()
if (isLogin) {
const subscriberId = await klicktippConnector.subscriberSearch(email)

View File

@ -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<string> {
const userTagList = await userTags(email)
console.log('userTags', userTagList)
return userTagList
return await getKlickTippUser(email)
}
@Query(() => String)
async getKlicktippTagMap(): Promise<string> {
const klicktippTagMap = await getKlicktippTagMap()
console.log('klicktippTagMap', klicktippTagMap)
return 'klicktippTagMap'
return await getKlicktippTagMap()
}
}

View File

@ -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<string> {
email = email.trim().toLowerCase()
const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password })

View File

@ -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
}