gradido/backend/src/graphql/resolver/KlicktippResolver.ts
2023-05-05 13:11:36 +02:00

26 lines
933 B
TypeScript

import { Resolver, Authorized, Mutation, Ctx } from 'type-graphql'
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'
@Resolver()
export class KlicktippResolver {
@Authorized([RIGHTS.UNSUBSCRIBE_NEWSLETTER])
@Mutation(() => Boolean)
async unsubscribeNewsletter(@Ctx() context: Context): Promise<boolean> {
const user = getUser(context)
await EVENT_NEWSLETTER_UNSUBSCRIBE(user)
return unsubscribe(user.emailContact.email)
}
@Authorized([RIGHTS.SUBSCRIBE_NEWSLETTER])
@Mutation(() => Boolean)
async subscribeNewsletter(@Ctx() context: Context): Promise<boolean> {
const user = getUser(context)
await EVENT_NEWSLETTER_SUBSCRIBE(user)
return subscribe(user.emailContact.email, user.language)
}
}