mirror of
https://github.com/IT4Change/gradido.git
synced 2026-01-20 20:01:31 +00:00
Gives a list of allCreations and calls the User one time in the creation.
This commit is contained in:
parent
c02f575780
commit
8c6ec08e88
@ -2,12 +2,13 @@ import { RIGHTS } from '@/auth/RIGHTS'
|
||||
import { Context, getUser } from '@/server/context'
|
||||
import { backendLogger as logger } from '@/server/logger'
|
||||
import { Contribution as dbContribution } from '@entity/Contribution'
|
||||
import { User as dbUser } from '@entity/User'
|
||||
import { Arg, Args, Authorized, Ctx, Mutation, Query, Resolver } from 'type-graphql'
|
||||
import { FindOperator, IsNull } from '@dbTools/typeorm'
|
||||
import { FindOperator, IsNull, Not } from '@dbTools/typeorm'
|
||||
import ContributionArgs from '@arg/ContributionArgs'
|
||||
import Paginated from '@arg/Paginated'
|
||||
import { Order } from '@enum/Order'
|
||||
import { Contribution } from '@model/Contribution'
|
||||
import { Contribution, ContributionListResult } from '@model/Contribution'
|
||||
import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
|
||||
import { User } from '@model/User'
|
||||
import { validateContribution, getUserCreation } from './util/creations'
|
||||
@ -63,4 +64,37 @@ export class ContributionResolver {
|
||||
})
|
||||
return contributions.map((contribution) => new Contribution(contribution, new User(user)))
|
||||
}
|
||||
|
||||
@Authorized([RIGHTS.LIST_ALL_CONFIRMED_CONTRIBUTIONS])
|
||||
@Query(() => ContributionListResult)
|
||||
async listAllConfirmedContributions(
|
||||
@Args()
|
||||
{ currentPage = 1, pageSize = 5, order = Order.DESC }: Paginated,
|
||||
): Promise<ContributionListResult> {
|
||||
const dbContributions = await dbContribution.find({
|
||||
order: {
|
||||
createdAt: order,
|
||||
},
|
||||
skip: (currentPage - 1) * pageSize,
|
||||
take: pageSize,
|
||||
})
|
||||
const contributions: Contribution[] = []
|
||||
const userIds: number[] = []
|
||||
dbContributions.forEach(async (dbContribution) => {
|
||||
userIds.push(dbContribution.userId)
|
||||
})
|
||||
userIds.filter((elem, index, self) => {
|
||||
return index === self.indexOf(elem)
|
||||
})
|
||||
const users = new Map()
|
||||
for (let i = 0; i < userIds.length; i++) {
|
||||
const id = userIds[i]
|
||||
const user = await dbUser.findOneOrFail({ id })
|
||||
users.set(id, user)
|
||||
}
|
||||
dbContributions.forEach((dbContribution) => {
|
||||
contributions.push(new Contribution(dbContribution, users.get(dbContribution.userId)))
|
||||
})
|
||||
return new ContributionListResult(contributions.length, contributions)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user