find contribution messages helper function

This commit is contained in:
Moriz Wahl 2023-06-20 12:44:35 +02:00
parent 732560aaac
commit 4d119f8911
2 changed files with 35 additions and 10 deletions

View File

@ -22,6 +22,8 @@ import {
import { Context, getUser } from '@/server/context'
import { LogError } from '@/server/LogError'
import { findContributionMessages } from './util/findContributionMessages'
@Resolver()
export class ContributionMessageResolver {
@Authorized([RIGHTS.CREATE_CONTRIBUTION_MESSAGE])
@ -82,16 +84,12 @@ export class ContributionMessageResolver {
@Args()
{ currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated,
): Promise<ContributionMessageListResult> {
const [contributionMessages, count] = await getConnection()
.createQueryBuilder()
.select('cm')
.from(DbContributionMessage, 'cm')
.leftJoinAndSelect('cm.user', 'u')
.where({ contributionId })
.orderBy('cm.createdAt', order)
.limit(pageSize)
.offset((currentPage - 1) * pageSize)
.getManyAndCount()
const [contributionMessages, count] = await findContributionMessages({
contributionId,
currentPage,
pageSize,
order,
})
return {
count,

View File

@ -0,0 +1,27 @@
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
import { Order } from '@enum/Order'
interface FindContributionMessagesOptions {
contributionId: number
pageSize: number
currentPage: number
order: Order
}
export const findContributionMessages = async (
options: FindContributionMessagesOptions,
): Promise<[DbContributionMessage[], number]> => {
const { contributionId, pageSize, currentPage, order } = options
return DbContributionMessage.findAndCount({
where: {
contributionId,
},
relations: ['user'],
order: {
createdAt: order,
},
skip: (currentPage - 1) * pageSize,
take: pageSize,
})
}