remove report -> profile relations to avoid TypeORM bug https://github.com/typeorm/typeorm/issues/10469

This commit is contained in:
Hazelnoot 2025-05-28 03:08:34 -04:00
parent 16891f8224
commit b1876bf06e
2 changed files with 3 additions and 25 deletions

View file

@ -5,7 +5,6 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { MiInstance } from '@/models/Instance.js';
import { MiUserProfile } from '@/models/UserProfile.js';
import { id } from './util/id.js';
import { MiUser } from './User.js';
@ -26,13 +25,6 @@ export class MiAbuseUserReport {
@JoinColumn()
public targetUser: MiUser | null;
@ManyToOne(() => MiUserProfile, {
onDelete: 'CASCADE',
createForeignKeyConstraints: false,
})
@JoinColumn({ name: 'targetUserId', referencedColumnName: 'userId' })
public targetUserProfile: MiUserProfile | null;
@Index()
@Column(id())
public reporterId: MiUser['id'];
@ -43,13 +35,6 @@ export class MiAbuseUserReport {
@JoinColumn()
public reporter: MiUser | null;
@ManyToOne(() => MiUserProfile, {
onDelete: 'CASCADE',
createForeignKeyConstraints: false,
})
@JoinColumn({ name: 'reporterId', referencedColumnName: 'userId' })
public reporterProfile: MiUserProfile | null;
@Column({
...id(),
nullable: true,
@ -62,13 +47,6 @@ export class MiAbuseUserReport {
@JoinColumn()
public assignee: MiUser | null;
@ManyToOne(() => MiUserProfile, {
onDelete: 'CASCADE',
createForeignKeyConstraints: false,
})
@JoinColumn({ name: 'assigneeId', referencedColumnName: 'userId' })
public assigneeProfile: MiUserProfile | null;
@Index()
@Column('boolean', {
default: false,

View file

@ -122,12 +122,12 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
super(meta, paramDef, async (ps, me) => {
const query = this.queryService.makePaginationQuery(this.abuseUserReportsRepository.createQueryBuilder('report'), ps.sinceId, ps.untilId)
.leftJoinAndSelect('report.targetUser', 'targetUser')
.leftJoinAndSelect('report.targetUserProfile', 'targetUserProfile')
.leftJoinAndSelect('targetUser.userProfile', 'targetUserProfile')
.leftJoinAndSelect('report.targetUserInstance', 'targetUserInstance')
.leftJoinAndSelect('report.reporter', 'reporter')
.leftJoinAndSelect('report.reporterProfile', 'reporterProfile')
.leftJoinAndSelect('reporter.userProfile', 'reporterProfile')
.leftJoinAndSelect('report.assignee', 'assignee')
.leftJoinAndSelect('report.assigneeProfile', 'assigneeProfile')
.leftJoinAndSelect('assignee.userProfile', 'assigneeProfile')
;
switch (ps.state) {