Skip to content

Commit 7a7effe

Browse files
committed
fix: apply self reference for duplicated submissions
1 parent b0f1673 commit 7a7effe

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import {MigrationInterface, QueryRunner} from "typeorm";
2+
3+
export class AddDuplicatedSubmission1626996924860 implements MigrationInterface {
4+
name = 'AddDuplicatedSubmission1626996924860'
5+
6+
public async up(queryRunner: QueryRunner): Promise<void> {
7+
await queryRunner.query(`ALTER TABLE "submissions" ADD "selfId" uuid`);
8+
await queryRunner.query(`ALTER TABLE "submissions" ADD CONSTRAINT "FK_8cc0cfc3583dbe9e530311136f6" FOREIGN KEY ("selfId") REFERENCES "submissions"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
9+
}
10+
11+
public async down(queryRunner: QueryRunner): Promise<void> {
12+
await queryRunner.query(`ALTER TABLE "submissions" DROP CONSTRAINT "FK_8cc0cfc3583dbe9e530311136f6"`);
13+
await queryRunner.query(`ALTER TABLE "submissions" DROP COLUMN "selfId"`);
14+
}
15+
16+
}

src/submissions/submission.entity.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars */
22
import { ApiProperty } from '@nestjs/swagger';
33
import { User } from 'src/users/user.entity';
4-
import { jsonArrayMember, jsonMember, jsonObject } from 'typedjson';
4+
import { jsonMember, jsonObject } from 'typedjson';
55
import {
66
BaseEntity,
77
Column,
88
CreateDateColumn,
99
Entity,
10-
JoinTable,
11-
ManyToMany,
1210
ManyToOne,
11+
OneToMany,
1312
PrimaryGeneratedColumn,
1413
UpdateDateColumn,
1514
} from 'typeorm';
@@ -111,12 +110,12 @@ export class Submission extends BaseEntity {
111110
@ApiProperty({ type: () => Benchmark })
112111
benchmark: Benchmark;
113112

114-
@ApiProperty()
115-
@JoinTable()
116-
@jsonArrayMember(() => Submission)
117-
@ManyToMany(
118-
() => Submission,
113+
@ManyToOne(
114+
(type) => Submission,
119115
(submission) => submission.duplicatedSubmissions,
120116
)
117+
self: Submission;
118+
119+
@OneToMany((type) => Submission, (submission) => submission.self)
121120
duplicatedSubmissions: Submission[];
122121
}

src/submissions/submissions.service.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export class SubmissionsService {
5656
submission.benchmark,
5757
insertSubmissionDTO.language,
5858
);
59+
// submission.self = submission;
5960

6061
return submission.save();
6162
}
@@ -115,7 +116,16 @@ export class SubmissionsService {
115116
// }
116117

117118
// Fallback to DB
118-
return this.submissionsRepository.findOne({ id: queriedSubmission.id });
119+
return this.submissionsRepository.findOne({
120+
where: [
121+
{
122+
id: queriedSubmission.id,
123+
},
124+
],
125+
relations: ['duplicatedSubmissions'],
126+
order: { createdAt: 'DESC' },
127+
});
128+
// return this.submissionsRepository.findOne({ id: queriedSubmission.id });
119129
}
120130

121131
@RabbitSubscribe({
@@ -190,6 +200,7 @@ export class SubmissionsService {
190200
language: matchedLanguage,
191201
},
192202
],
203+
relations: ['duplicatedSubmissions'],
193204
order: { createdAt: 'DESC' },
194205
});
195206
}

0 commit comments

Comments
 (0)