diff --git a/backend/src/graphql/resolver/GdtResolver.ts b/backend/src/graphql/resolver/GdtResolver.ts index db3f2d286..56a95c9f0 100644 --- a/backend/src/graphql/resolver/GdtResolver.ts +++ b/backend/src/graphql/resolver/GdtResolver.ts @@ -1,4 +1,4 @@ -import { Context } from '@/server/context' +import { Context, getUser } from '@/server/context' import { Resolver, Query, Args, Ctx, Authorized, Arg } from 'type-graphql' import CONFIG from '@/config' import { GdtEntryList } from '@model/GdtEntryList' @@ -16,8 +16,7 @@ export class GdtResolver { { currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated, @Ctx() context: Context, ): Promise { - const userEntity = context.user - if (!userEntity) throw new Error('No user given!') + const userEntity = getUser(context) try { const resultGDT = await apiGet( @@ -35,8 +34,7 @@ export class GdtResolver { @Authorized([RIGHTS.GDT_BALANCE]) @Query(() => Number) async gdtBalance(@Ctx() context: Context): Promise { - const { user } = context - if (!user) throw new Error('No user given!') + const user = getUser(context) try { const resultGDTSum = await apiPost(`${CONFIG.GDT_API_URL}/GdtEntries/sumPerEmailApi`, { email: user.email, diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts index 253e13ec6..733f1db28 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts @@ -1,4 +1,4 @@ -import { Context } from '@/server/context' +import { Context, getUser } from '@/server/context' import { Resolver, Args, Arg, Authorized, Ctx, Mutation, Query, Int } from 'type-graphql' import { TransactionLink } from '@model/TransactionLink' import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' @@ -38,8 +38,7 @@ export class TransactionLinkResolver { @Args() { amount, memo }: TransactionLinkArgs, @Ctx() context: Context, ): Promise { - const { user } = context - if (!user) throw new Error('No user given!') + const user = getUser(context) const createdDate = new Date() const validUntil = transactionLinkExpireDate(createdDate) @@ -73,8 +72,7 @@ export class TransactionLinkResolver { @Arg('id', () => Int) id: number, @Ctx() context: Context, ): Promise { - const { user } = context - if (!user) throw new Error('No user given!') + const user = getUser(context) const transactionLink = await dbTransactionLink.findOne({ id }) if (!transactionLink) { @@ -115,8 +113,7 @@ export class TransactionLinkResolver { { currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated, @Ctx() context: Context, ): Promise { - const { user } = context - if (!user) throw new Error('No user given!') + const user = getUser(context) // const now = new Date() const transactionLinks = await dbTransactionLink.find({ where: { @@ -139,8 +136,7 @@ export class TransactionLinkResolver { @Arg('code', () => String) code: string, @Ctx() context: Context, ): Promise { - const { user } = context - if (!user) throw new Error('No user given!') + const user = getUser(context) const transactionLink = await dbTransactionLink.findOneOrFail({ code }) const linkedUser = await dbUser.findOneOrFail({ id: transactionLink.userId }) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 05e7f09b8..137c09622 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -1,5 +1,5 @@ import fs from 'fs' -import { Context } from '@/server/context' +import { Context, getUser } from '@/server/context' import { Resolver, Query, Args, Arg, Authorized, Ctx, UseMiddleware, Mutation } from 'type-graphql' import { getConnection, getCustomRepository } from '@dbTools/typeorm' import CONFIG from '@/config' @@ -192,8 +192,7 @@ export class UserResolver { @UseMiddleware(klicktippNewsletterStateMiddleware) async verifyLogin(@Ctx() context: Context): Promise { // TODO refactor and do not have duplicate code with login(see below) - const userEntity = context.user - if (!userEntity) throw new Error('No user given!') + const userEntity = getUser(context) const user = new User(userEntity) // user.pubkey = userEntity.pubKey.toString('hex') // Elopage Status & Stored PublisherId @@ -541,8 +540,7 @@ export class UserResolver { }: UpdateUserInfosArgs, @Ctx() context: Context, ): Promise { - const userEntity = context.user - if (!userEntity) throw new Error('No user given!') + const userEntity = getUser(context) if (firstName) { userEntity.firstName = firstName diff --git a/backend/src/server/context.ts b/backend/src/server/context.ts index 0958449a4..ffe90aca2 100644 --- a/backend/src/server/context.ts +++ b/backend/src/server/context.ts @@ -23,4 +23,9 @@ const context = (args: any): Context => { return context } +export const getUser = (context: Context): dbUser => { + if (context.user) return context.user + throw new Error('No user given in context!') +} + export default context