mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { In } from '@dbTools/typeorm'
|
|
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
|
|
|
|
import { ContributionMessageType } from '@enum/ContributionMessageType'
|
|
import { Order } from '@enum/Order'
|
|
|
|
interface FindContributionMessagesOptions {
|
|
contributionId: number
|
|
pageSize: number
|
|
currentPage: number
|
|
order: Order
|
|
showModeratorType?: boolean
|
|
}
|
|
|
|
export const findContributionMessages = async (
|
|
options: FindContributionMessagesOptions,
|
|
): Promise<[DbContributionMessage[], number]> => {
|
|
const { contributionId, pageSize, currentPage, order, showModeratorType } = options
|
|
|
|
const messageTypes = [ContributionMessageType.DIALOG, ContributionMessageType.HISTORY]
|
|
|
|
if (showModeratorType) messageTypes.push(ContributionMessageType.MODERATOR)
|
|
|
|
return DbContributionMessage.findAndCount({
|
|
where: {
|
|
contributionId,
|
|
type: In(messageTypes),
|
|
},
|
|
relations: ['user'],
|
|
order: {
|
|
createdAt: order,
|
|
},
|
|
skip: (currentPage - 1) * pageSize,
|
|
take: pageSize,
|
|
})
|
|
}
|