From ab0f7c8c7ecdd221b7686f78ef149ce2afa8d6b0 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 22 Mar 2022 18:51:41 +0100 Subject: [PATCH] add listTransactionLinksAdmin query --- backend/src/auth/RIGHTS.ts | 1 + backend/src/graphql/resolver/AdminResolver.ts | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/backend/src/auth/RIGHTS.ts b/backend/src/auth/RIGHTS.ts index f40088779..e68bf0a6f 100644 --- a/backend/src/auth/RIGHTS.ts +++ b/backend/src/auth/RIGHTS.ts @@ -35,4 +35,5 @@ export enum RIGHTS { DELETE_USER = 'DELETE_USER', UNDELETE_USER = 'UNDELETE_USER', CREATION_TRANSACTION_LIST = 'CREATION_TRANSACTION_LIST', + LIST_TRANSACTION_LINKS_ADMIN = 'LIST_TRANSACTION_LINKS_ADMIN', } diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index d98b38b7f..01634761b 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -21,6 +21,8 @@ import UpdatePendingCreationArgs from '@arg/UpdatePendingCreationArgs' import SearchUsersArgs from '@arg/SearchUsersArgs' import { Transaction as DbTransaction } from '@entity/Transaction' import { Transaction } from '@model/Transaction' +import { TransactionLink } from '@model/TransactionLink' +import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { TransactionRepository } from '@repository/Transaction' import { calculateDecay } from '@/util/decay' import { AdminPendingCreation } from '@entity/AdminPendingCreation' @@ -369,6 +371,27 @@ export class AdminResolver { const user = await dbUser.findOneOrFail({ id: userId }) return userTransactions.map((t) => new Transaction(t, new User(user), communityUser)) } + + @Authorized([RIGHTS.LIST_TRANSACTION_LINKS_ADMIN]) + @Query(() => [TransactionLink]) + async listTransactionLinksAdmin( + @Args() + { currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated, + @Arg('userId', () => Int) userId: number, + ): Promise { + const user = await dbUser.findOneOrFail({ id: userId }) + const transactionLinks = await dbTransactionLink.find({ + where: { + userId: user.id, + }, + order: { + createdAt: order, + }, + skip: (currentPage - 1) * pageSize, + take: pageSize, + }) + return transactionLinks.map((tl) => new TransactionLink(tl, new User(user))) + } } interface CreationMap {