gradido/backend/src/graphql/resolver/util/findContributions.ts

29 lines
802 B
TypeScript

import { ContributionStatus } from '@enum/ContributionStatus'
import { Order } from '@enum/Order'
import { Contribution as DbContribution } from '@entity/Contribution'
import { In } from '@dbTools/typeorm'
export const findContributions = async (
order: Order,
currentPage: number,
pageSize: number,
withDeleted: boolean,
relations: string[],
userId?: number,
statusFilter?: ContributionStatus[],
): Promise<[DbContribution[], number]> =>
DbContribution.findAndCount({
where: {
...(statusFilter && statusFilter.length && { contributionStatus: In(statusFilter) }),
...(userId && { userId }),
},
withDeleted: withDeleted,
order: {
createdAt: order,
id: order,
},
relations,
skip: (currentPage - 1) * pageSize,
take: pageSize,
})