mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Query ContributionMessages for a specific contributionId.
This commit is contained in:
parent
d2790588ba
commit
3fbf8b6444
@ -2,13 +2,15 @@ import { backendLogger as logger } from '@/server/logger'
|
|||||||
import { RIGHTS } from '@/auth/RIGHTS'
|
import { RIGHTS } from '@/auth/RIGHTS'
|
||||||
import { Context, getUser } from '@/server/context'
|
import { Context, getUser } from '@/server/context'
|
||||||
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
|
import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage'
|
||||||
import { Args, Authorized, Ctx, Mutation, Resolver } from 'type-graphql'
|
import { Arg, Args, Authorized, Ctx, Mutation, Query, Resolver } from 'type-graphql'
|
||||||
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
import ContributionMessageArgs from '@arg/ContributionMessageArgs'
|
||||||
import { Contribution } from '@entity/Contribution'
|
import { Contribution } from '@entity/Contribution'
|
||||||
import { ContributionMessageType } from '@enum/MessageType'
|
import { ContributionMessageType } from '@enum/MessageType'
|
||||||
import { ContributionStatus } from '@enum/ContributionStatus'
|
import { ContributionStatus } from '@enum/ContributionStatus'
|
||||||
import { getConnection } from '@dbTools/typeorm'
|
import { getConnection } from '@dbTools/typeorm'
|
||||||
import { ContributionMessage } from '@model/ContributionMessage'
|
import { ContributionMessage, ContributionMessageListResult } from '@model/ContributionMessage'
|
||||||
|
import Paginated from '../arg/Paginated'
|
||||||
|
import { Order } from '../enum/Order'
|
||||||
|
|
||||||
@Resolver()
|
@Resolver()
|
||||||
export class ContributionMessageResolver {
|
export class ContributionMessageResolver {
|
||||||
@ -53,4 +55,30 @@ export class ContributionMessageResolver {
|
|||||||
}
|
}
|
||||||
return new ContributionMessage(contributionMessage, user)
|
return new ContributionMessage(contributionMessage, user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Authorized([RIGHTS.LIST_ALL_CONTRIBUTION_MESSAGES])
|
||||||
|
@Query(() => ContributionMessageListResult)
|
||||||
|
async listContributionMessages(
|
||||||
|
@Arg('contributionId') contributionId: number,
|
||||||
|
@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: contributionId })
|
||||||
|
.orderBy('cm.createdAt', order)
|
||||||
|
.limit(pageSize)
|
||||||
|
.offset((currentPage - 1) * pageSize)
|
||||||
|
.getManyAndCount()
|
||||||
|
|
||||||
|
return {
|
||||||
|
count,
|
||||||
|
messages: contributionMessages.map(
|
||||||
|
(message) => new ContributionMessage(message, message.user),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user