Merge branch '2131-crud-for-messages' into Contribution-Messages

This commit is contained in:
ogerly 2022-08-24 16:35:17 +02:00
commit 938079d8b4
4 changed files with 26 additions and 11 deletions

View File

@ -19,7 +19,7 @@ export class Contribution {
this.contributionDate = contribution.contributionDate
this.state = contribution.contributionStatus
this.messages = contribution.messages
? contribution.messages.map((message) => new ContributionMessage(message, user))
? contribution.messages.map((message) => new ContributionMessage(message, message.user))
: []
}

View File

@ -14,6 +14,7 @@ import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
import { User } from '@model/User'
import { validateContribution, getUserCreation, updateCreations } from './util/creations'
import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const'
import { ContributionMessage } from '@entity/ContributionMessage'
@Resolver()
export class ContributionResolver {
@ -90,17 +91,20 @@ export class ContributionResolver {
userId: number
confirmedBy?: FindOperator<number> | null
} = { userId: user.id }
if (filterConfirmed) where.confirmedBy = IsNull()
const [contributions, count] = await dbContribution.findAndCount({
where,
order: {
createdAt: order,
},
relations: ['messages'],
withDeleted: true,
skip: (currentPage - 1) * pageSize,
take: pageSize,
})
const [contributions, count] = await getConnection()
.createQueryBuilder()
.select('c')
.from(dbContribution, 'c')
.innerJoinAndSelect('c.messages', 'm')
.innerJoinAndSelect('m.user', 'u')
.orderBy('c.createdAt', order)
.limit(pageSize)
.offset((currentPage - 1) * pageSize)
.getManyAndCount()
return new ContributionListResult(
count,
contributions.map((contribution) => new Contribution(contribution, user)),

View File

@ -8,6 +8,7 @@ import {
JoinColumn,
} from 'typeorm'
import { Contribution } from '../Contribution'
import { ContributionMessage } from '../ContributionMessage'
@Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' })
export class User extends BaseEntity {
@ -108,4 +109,8 @@ export class User extends BaseEntity {
@OneToMany(() => Contribution, (contribution) => contribution.user)
@JoinColumn({ name: 'user_id' })
contributions?: Contribution[]
@OneToMany(() => ContributionMessage, (message) => message.user)
@JoinColumn({ name: 'user_id' })
messages?: ContributionMessage[]
}

View File

@ -5,9 +5,11 @@ import {
Entity,
JoinColumn,
ManyToOne,
OneToMany,
PrimaryGeneratedColumn,
} from 'typeorm'
import { Contribution } from '../Contribution'
import { User } from '../User'
@Entity('contribution_messages', {
engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci',
@ -26,6 +28,10 @@ export class ContributionMessage extends BaseEntity {
@Column({ name: 'user_id', unsigned: true, nullable: false })
userId: number
@ManyToOne(() => User, (user) => user.messages)
@JoinColumn({ name: 'user_id' })
user: User
@Column({ length: 2000, nullable: false, collation: 'utf8mb4_unicode_ci' })
message: string