gradido/backend/src/graphql/resolver/KlicktippResolver.ts
Hannes Heine 3c9dca5b46
Update backend/src/graphql/resolver/KlicktippResolver.ts
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2023-03-28 01:49:27 +02:00

41 lines
1.2 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-unsafe-return */
import { Resolver, Query, Authorized, Arg, Mutation, Ctx } from 'type-graphql'
import {
getKlickTippUser,
getKlicktippTagMap,
unsubscribe,
klicktippSignIn,
} from '@/apis/KlicktippController'
import { RIGHTS } from '@/auth/RIGHTS'
import { Context, getUser } from '@/server/context'
@Resolver()
export class KlicktippResolver {
@Authorized([RIGHTS.GET_KLICKTIPP_USER])
@Query(() => String)
async getKlicktippUser(@Arg('email') email: string): Promise<string> {
return await getKlickTippUser(email)
}
@Authorized([RIGHTS.GET_KLICKTIPP_TAG_MAP])
@Query(() => String)
async getKlicktippTagMap(): Promise<string> {
return await getKlicktippTagMap()
}
@Authorized([RIGHTS.UNSUBSCRIBE_NEWSLETTER])
@Mutation(() => Boolean)
async unsubscribeNewsletter(@Ctx() context: Context): Promise<boolean> {
const user = getUser(context)
return unsubscribe(user.emailContact.email)
}
@Authorized([RIGHTS.SUBSCRIBE_NEWSLETTER])
@Mutation(() => Boolean)
async subscribeNewsletter(@Ctx() context: Context): Promise<boolean> {
const user = getUser(context)
return klicktippSignIn(user.emailContact.email, user.language)
}
}