From dc30f4c105686ac310fc3788fbc77a48b7410db4 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 14 Jan 2024 21:48:25 +0900 Subject: [PATCH 01/68] Chore: Remove unused migration script --- .platform/hooks/predeploy/01_database_init.sh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.platform/hooks/predeploy/01_database_init.sh b/.platform/hooks/predeploy/01_database_init.sh index 04cdc0a..247cfa6 100644 --- a/.platform/hooks/predeploy/01_database_init.sh +++ b/.platform/hooks/predeploy/01_database_init.sh @@ -1,9 +1,4 @@ #!/usr/bin/env bash # Add database migration script -node node_modules/prisma/build/index.js migrate resolve --applied 20240109151719_submission_ispulic -node node_modules/prisma/build/index.js migrate resolve --applied 20240113073649_problem_issue_comment -node node_modules/prisma/build/index.js migrate resolve --applied 20240113161205_problem_issue_comment_user -node node_modules/prisma/build/index.js migrate resolve --applied 20240114010304_chagne_issue_comment_name -node node_modules/prisma/build/index.js migrate resolve --applied 20240114021108_issue_comment_problem_relation -node node_modules/prisma/build/index.js migrate resolve --applied 20240114021239_modify_problem_issue_problem +node node_modules/prisma/build/index.js generate From 326d373790c1ad733db78ba3b38afe01401f1da9 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 00:24:11 +0900 Subject: [PATCH 02/68] Fix: Fix get single problem --- src/judge/contributer/contributer.controller.ts | 2 +- src/judge/contributer/decorator/contributer-problem.guard.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/judge/contributer/contributer.controller.ts b/src/judge/contributer/contributer.controller.ts index 355248e..4c8fa77 100644 --- a/src/judge/contributer/contributer.controller.ts +++ b/src/judge/contributer/contributer.controller.ts @@ -43,7 +43,7 @@ export class ContributerController { @ContributerDocs.readProblem() readProblem( @GetUser('id') uid: string, - @Query('pid', ParseIntPipe) pid: number, + @Param('pid', ParseIntPipe) pid: number, ) { return this.contributerService.readProblem(uid, pid); } diff --git a/src/judge/contributer/decorator/contributer-problem.guard.ts b/src/judge/contributer/decorator/contributer-problem.guard.ts index 2e318c5..7634d72 100644 --- a/src/judge/contributer/decorator/contributer-problem.guard.ts +++ b/src/judge/contributer/decorator/contributer-problem.guard.ts @@ -1,9 +1,7 @@ import { - BadRequestException, CanActivate, ExecutionContext, ForbiddenException, - Inject, Injectable, } from '@nestjs/common'; import { PrismaService } from 'app/prisma/prisma.service'; @@ -19,7 +17,8 @@ import { Request } from 'express'; @Injectable() export class ContributerProblemGuard implements CanActivate { - constructor(@Inject(PrismaService) private prisma: PrismaService) {} + constructor(private prisma: PrismaService) {} + async canActivate(context: ExecutionContext): Promise { const request = context.switchToHttp().getRequest(); From 5fc93a759668b3810440ea9f4d447f6323f53a3b Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 13:08:37 +0900 Subject: [PATCH 03/68] Chore: Add AWS env key fields --- .env | 7 +++++++ .test.env | 7 +++++++ libs/aws-sqs/src/aws-sqs.service.ts | 1 - 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 96d2858..0df7332 100644 --- a/.env +++ b/.env @@ -12,3 +12,10 @@ ADMIN_PW = "admin" JWT_SECRET="SECRET" JUDGE_SERVER_ENDPOINT="a" + +# AWS +AWS_REGION="" +AWS_ACCESS_ID="" +AWS_ACCESS_SECRET="" +AWS_SQS_QUEUE="" +AWS_S3_BUCKET="" \ No newline at end of file diff --git a/.test.env b/.test.env index a7fe04d..15577db 100644 --- a/.test.env +++ b/.test.env @@ -12,3 +12,10 @@ ADMIN_PW = "admin" JWT_SECRET="SECRET" JUDGE_SERVER_ENDPOINT="a" + +# AWS +AWS_REGION="" +AWS_ACCESS_ID="" +AWS_ACCESS_SECRET="" +AWS_SQS_QUEUE="" +AWS_S3_BUCKET="" \ No newline at end of file diff --git a/libs/aws-sqs/src/aws-sqs.service.ts b/libs/aws-sqs/src/aws-sqs.service.ts index 477c1ce..5f88b55 100644 --- a/libs/aws-sqs/src/aws-sqs.service.ts +++ b/libs/aws-sqs/src/aws-sqs.service.ts @@ -1,7 +1,6 @@ import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs'; import { Injectable } from '@nestjs/common'; import { SQSTask } from './type'; -import { take } from 'rxjs'; @Injectable() export class AwsSqsService { From ba3b441273a2d587a156d5cd2083bfe91bbbe896 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 23:12:03 +0900 Subject: [PATCH 04/68] Feat: Add AWS SQS Worker --- .../hooks/predeploy/01_databse_migration.sh | 3 + ...init.sh => 02_database_client_generate.sh} | 2 +- domain/problem.domain.ts | 3 + libs/aws-sqs/src/aws-sqs.service.ts | 14 +- libs/aws-sqs/src/type.ts | 6 +- .../migration.sql | 8 + prisma/schema.prisma | 1 + src/app.module.ts | 2 + src/judge/contributer/contributer.module.ts | 2 + .../contributer/contributer.service.spec.ts | 1 + src/judge/contributer/contributer.service.ts | 11 +- .../contributer/dto/update-problem.dto.ts | 5 + src/judge/decorator/problem.guard.ts | 1 + src/judge/judge.controller.e2e-spec.ts | 10 ++ src/worker/worker.controller.ts | 14 ++ src/worker/worker.module.ts | 11 ++ src/worker/worker.service.ts | 139 ++++++++++++++++++ test/jest-e2e.json | 2 + test/jest-unit.json | 4 +- 19 files changed, 229 insertions(+), 10 deletions(-) create mode 100644 .platform/hooks/predeploy/01_databse_migration.sh rename .platform/hooks/predeploy/{01_database_init.sh => 02_database_client_generate.sh} (68%) create mode 100644 prisma/migrations/20240115050418_proble_is_open/migration.sql create mode 100644 src/worker/worker.controller.ts create mode 100644 src/worker/worker.module.ts create mode 100644 src/worker/worker.service.ts diff --git a/.platform/hooks/predeploy/01_databse_migration.sh b/.platform/hooks/predeploy/01_databse_migration.sh new file mode 100644 index 0000000..fb9a8e9 --- /dev/null +++ b/.platform/hooks/predeploy/01_databse_migration.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +node node_modules/prisma/build/index.js migrate resolve --applied 20240115050418_proble_is_open diff --git a/.platform/hooks/predeploy/01_database_init.sh b/.platform/hooks/predeploy/02_database_client_generate.sh similarity index 68% rename from .platform/hooks/predeploy/01_database_init.sh rename to .platform/hooks/predeploy/02_database_client_generate.sh index 247cfa6..915341f 100644 --- a/.platform/hooks/predeploy/01_database_init.sh +++ b/.platform/hooks/predeploy/02_database_client_generate.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash -# Add database migration script +# Do not modify node node_modules/prisma/build/index.js generate diff --git a/domain/problem.domain.ts b/domain/problem.domain.ts index d4c89da..fd9d113 100644 --- a/domain/problem.domain.ts +++ b/domain/problem.domain.ts @@ -29,6 +29,9 @@ export class ProblemDomain implements Problem { }) tags: string[] | Prisma.JsonValue; + @ApiProperty() + isOpen: boolean; + @ApiProperty() isArchived: boolean; diff --git a/libs/aws-sqs/src/aws-sqs.service.ts b/libs/aws-sqs/src/aws-sqs.service.ts index 5f88b55..7a92f36 100644 --- a/libs/aws-sqs/src/aws-sqs.service.ts +++ b/libs/aws-sqs/src/aws-sqs.service.ts @@ -22,10 +22,14 @@ export class AwsSqsService { } async sendTask(task: SQSTask) { - const command = new SendMessageCommand({ - QueueUrl: this.sqsQueue, - MessageBody: JSON.stringify(task), - }); - await this.sqsClient.send(command); + // Do send task if it's dev or production + if (process.env.ENV === 'dev' || process.env.ENV === 'production') { + const command = new SendMessageCommand({ + QueueUrl: this.sqsQueue, + MessageBody: JSON.stringify(task), + }); + + await this.sqsClient.send(command); + } } } diff --git a/libs/aws-sqs/src/type.ts b/libs/aws-sqs/src/type.ts index a2f2340..0a1be6f 100644 --- a/libs/aws-sqs/src/type.ts +++ b/libs/aws-sqs/src/type.ts @@ -1,4 +1,6 @@ +export type SQSMessageType = 'RE_CORRECTION' | 'CODE_SUBMIT'; + export type SQSTask = { - message: string; - id: string; + message: SQSMessageType; + id: string | number; }; diff --git a/prisma/migrations/20240115050418_proble_is_open/migration.sql b/prisma/migrations/20240115050418_proble_is_open/migration.sql new file mode 100644 index 0000000..d66934f --- /dev/null +++ b/prisma/migrations/20240115050418_proble_is_open/migration.sql @@ -0,0 +1,8 @@ +-- DropForeignKey +ALTER TABLE `problem_issue_comment` DROP FOREIGN KEY `problem_issue_comment_problemId_fkey`; + +-- AlterTable +ALTER TABLE `problem` ADD COLUMN `isOpen` BOOLEAN NOT NULL DEFAULT false; + +-- AddForeignKey +ALTER TABLE `problem_issue_comment` ADD CONSTRAINT `problem_issue_comment_problemId_fkey` FOREIGN KEY (`problemId`) REFERENCES `problem`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e82a493..7619607 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -53,6 +53,7 @@ model Problem { examples ProblemExample[] tags Json + isOpen Boolean @default(false) isArchived Boolean @default(false) deletedAt DateTime? diff --git a/src/app.module.ts b/src/app.module.ts index 382658c..17d27ae 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -7,6 +7,7 @@ import { UserModule } from './user/user.module'; import { ConfigModule } from '@nestjs/config'; import { JudgeModule } from './judge/judge.module'; import { SystemLoggerModule } from './system-logger/system-logger.module'; +import { WorkerModule } from './worker/worker.module'; @Module({ imports: [ @@ -16,6 +17,7 @@ import { SystemLoggerModule } from './system-logger/system-logger.module'; PrismaModule, UserModule, JudgeModule, + WorkerModule, ], controllers: [AppController], providers: [AppService], diff --git a/src/judge/contributer/contributer.module.ts b/src/judge/contributer/contributer.module.ts index 2f2f8bc..761b439 100644 --- a/src/judge/contributer/contributer.module.ts +++ b/src/judge/contributer/contributer.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common'; import { ContributerService } from './contributer.service'; import { ContributerController } from './contributer.controller'; +import { AwsSqsModule } from 'aws-sqs/aws-sqs'; @Module({ + imports: [AwsSqsModule], providers: [ContributerService], controllers: [ContributerController], }) diff --git a/src/judge/contributer/contributer.service.spec.ts b/src/judge/contributer/contributer.service.spec.ts index 1c3fee0..eb12649 100644 --- a/src/judge/contributer/contributer.service.spec.ts +++ b/src/judge/contributer/contributer.service.spec.ts @@ -70,6 +70,7 @@ describe('ContributerService', () => { problem: 'Problem', input: 'Input', output: 'Output', + isOpen: true, timeLimit: 10, memoryLimit: 10, tags: ['string'], diff --git a/src/judge/contributer/contributer.service.ts b/src/judge/contributer/contributer.service.ts index 4c92fec..4d3e6cf 100644 --- a/src/judge/contributer/contributer.service.ts +++ b/src/judge/contributer/contributer.service.ts @@ -3,10 +3,11 @@ import { PaginateObject } from 'app/decorator'; import { UpdateProblmeDto } from 'app/judge/contributer/dto/update-problem.dto'; import { PrismaService } from 'app/prisma/prisma.service'; import { UpdateExampleDto } from './dto'; +import { AwsSqsService } from 'aws-sqs/aws-sqs'; @Injectable() export class ContributerService { - constructor(private prisma: PrismaService) {} + constructor(private prisma: PrismaService, private sqs: AwsSqsService) {} async listProblem(uid: string, search: string, pagination: PaginateObject) { return this.prisma.problem.findMany({ @@ -120,9 +121,17 @@ export class ContributerService { }, }, }); + if (!findExample) { throw new ForbiddenException('FORBIDDEN_REQUEST'); } + + // Send task to client + await this.sqs.sendTask({ + id: pid, + message: 'RE_CORRECTION', + }); + return this.prisma.problemExample.update({ where: { id: eid, diff --git a/src/judge/contributer/dto/update-problem.dto.ts b/src/judge/contributer/dto/update-problem.dto.ts index 99e5862..bc23a6e 100644 --- a/src/judge/contributer/dto/update-problem.dto.ts +++ b/src/judge/contributer/dto/update-problem.dto.ts @@ -1,6 +1,7 @@ import { OmitType } from '@nestjs/swagger'; import { IsArray, + IsBoolean, IsNotEmpty, IsNumber, IsOptional, @@ -24,6 +25,10 @@ export class UpdateProblmeDto extends OmitType(ProblemDomain, [ @IsOptional() problem: string; + @IsBoolean() + @IsOptional() + isOpen: boolean; + @IsString() @IsOptional() input: string; diff --git a/src/judge/decorator/problem.guard.ts b/src/judge/decorator/problem.guard.ts index b33697e..ebaeec3 100644 --- a/src/judge/decorator/problem.guard.ts +++ b/src/judge/decorator/problem.guard.ts @@ -28,6 +28,7 @@ export class ProblemGuard implements CanActivate { await this.prisma.problem.findUniqueOrThrow({ where: { id: parseInt(problemId), + isOpen: true, }, }); return true; diff --git a/src/judge/judge.controller.e2e-spec.ts b/src/judge/judge.controller.e2e-spec.ts index 524547e..3168d52 100644 --- a/src/judge/judge.controller.e2e-spec.ts +++ b/src/judge/judge.controller.e2e-spec.ts @@ -82,6 +82,16 @@ describe('/judge Judge Controller', () => { problemId = newProblem.body['id']; }); + it('should set problem public', async () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .send({ + isOpen: true, + }) + .expect(200); + }); + it('should generate problme example', async () => { const example = await request(app.getHttpServer()) .post(`/judge/contribute/problems/${problemId}/examples`) diff --git a/src/worker/worker.controller.ts b/src/worker/worker.controller.ts new file mode 100644 index 0000000..b091723 --- /dev/null +++ b/src/worker/worker.controller.ts @@ -0,0 +1,14 @@ +import { Body, Controller, HttpCode, Post } from '@nestjs/common'; +import { WorkerService } from './worker.service'; +import { SQSTask } from 'aws-sqs/aws-sqs/type'; + +@Controller('worker') +export class WorkerController { + constructor(private workerService: WorkerService) {} + + @HttpCode(200) + @Post() + workerController(@Body() dto: SQSTask) { + return this.workerService.worker(dto); + } +} diff --git a/src/worker/worker.module.ts b/src/worker/worker.module.ts new file mode 100644 index 0000000..95140f0 --- /dev/null +++ b/src/worker/worker.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { WorkerService } from './worker.service'; +import { WorkerController } from './worker.controller'; +import { Judge0Module } from 'judge/judge0'; + +@Module({ + imports: [Judge0Module], + providers: [WorkerService], + controllers: [WorkerController], +}) +export class WorkerModule {} diff --git a/src/worker/worker.service.ts b/src/worker/worker.service.ts new file mode 100644 index 0000000..f67c618 --- /dev/null +++ b/src/worker/worker.service.ts @@ -0,0 +1,139 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { PrismaService } from 'app/prisma/prisma.service'; +import { SQSTask } from 'aws-sqs/aws-sqs/type'; +import { ProblemDomain, SubmissionDomain } from 'domains'; +import { Judge0Service } from 'judge/judge0'; + +@Injectable() +export class WorkerService { + private log: Logger = new Logger(); + + constructor(private prisma: PrismaService, private judge0: Judge0Service) {} + + async worker(dto: SQSTask) { + switch (dto.message) { + // Re-Correct if contributer modify example + case 'RE_CORRECTION': + return await this.reCorrectSubmissions(dto.id as number); + break; + // Code Submit + case 'CODE_SUBMIT': + break; + default: + // If message with unsupported message type -> Consume and ignore + this.log.warn(`Unknown queue item detected: ${dto}`); + return true; + } + } + + async reCorrectSubmissions(id: number) { + try { + // Get all of the submission with problem id + const submissions = await this.prisma.submission.findMany({ + where: { + problemId: id, + }, + }); + + let problem: ProblemDomain; + try { + problem = await this.prisma.problem.findUnique({ + where: { + id: id, + }, + }); + } catch (err) { + // If target problem is unappropriate problem for recorrection + return true; + } + for (const submission of submissions) { + await this.correctionWithExample(id, submission, problem); + } + return true; + } catch (err) { + // If fail -> Do logging and throw error again + console.error(`Fail to recorrect submission: ${id}`); + console.error(`Message: ${err}`); + throw err; + } + } + + async correctionWithExample( + problemId: number, + submission: SubmissionDomain, + problem: ProblemDomain, + ) { + const examples = await this.prisma.problemExample.findMany({ + where: { + problemId: problemId, + }, + }); + + const results = await Promise.all( + examples.map((example) => { + return this.judge0.submit( + submission.languageId, + submission.code, + example.output, + example.input, + problem.timeLimit, + problem.memoryLimit, + ); + }), + ); + results.sort((x, y) => { + // Firstly sort by time + if (x.time > y.time) { + return 1; + } + if (x.time < y.time) { + return -1; + } + + // If time is same, sort as memory + if (x.memory > y.memory) { + return 1; + } + if (x.memory < y.memory) { + return -1; + } + }); + + // Filter wrong answer + const checkWrongAnswer = results.filter((result) => !result.isCorrect); + checkWrongAnswer.sort((x, y) => { + // Firstly sort by time + if (x.time > y.time) { + return 1; + } + if (x.time < y.time) { + return -1; + } + + // If time is same, sort as memory + if (x.memory > y.memory) { + return 1; + } + if (x.memory < y.memory) { + return -1; + } + }); + + const data = checkWrongAnswer.length ? checkWrongAnswer[0] : results[0]; + + await this.prisma.$transaction([ + this.prisma.submission.update({ + where: { + id: submission.id, + }, + data: { + memory: data.memory, + time: data.time, + isCorrect: data.isCorrect, + response: data.description, + }, + }), + ]); + return true; + } +} diff --git a/test/jest-e2e.json b/test/jest-e2e.json index 49d07be..5ca9005 100644 --- a/test/jest-e2e.json +++ b/test/jest-e2e.json @@ -15,6 +15,8 @@ "domains/(.*)": "/../domain/$1", "s3/aws-s3": "/../libs/aws-s3/src", "s3/aws-s3/(.*)": "/../libs/aws-s3/src/$1", + "aws-sqs/aws-sqs": "/../libs/aws-sqs/src", + "aws-sqs/aws-sqs/(.*)": "/../libs/aws-sqs/src/$1", "judge/judge0": "/../libs/judge0/src", "judge/judge0/(.*)": "/../libs/judge0/src/$1" } diff --git a/test/jest-unit.json b/test/jest-unit.json index 5e769e1..25ce578 100644 --- a/test/jest-unit.json +++ b/test/jest-unit.json @@ -16,6 +16,8 @@ "s3/aws-s3": "/../libs/aws-s3/src", "s3/aws-s3/(.*)": "/../libs/aws-s3/src/$1", "judge/judge0": "/../libs/judge0/src", - "judge/judge0/(.*)": "/../libs/judge0/src/$1" + "judge/judge0/(.*)": "/../libs/judge0/src/$1", + "aws-sqs/aws-sqs": "/../libs/aws-sqs/src", + "aws-sqs/aws-sqs/(.*)": "/../libs/aws-sqs/src/$1" } } From 6dab6961b33873997cff084830e91dc233eda8bd Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 23:19:45 +0900 Subject: [PATCH 05/68] Test: Resolve dependency problem in unit testing and sync .env file --- .env | 4 +++- src/judge/contributer/contributer.service.spec.ts | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 0df7332..0b117f3 100644 --- a/.env +++ b/.env @@ -11,7 +11,9 @@ ADMIN_PW = "admin" JWT_SECRET="SECRET" -JUDGE_SERVER_ENDPOINT="a" +JUDGE_SERVER_ENDPOINT="" + +ENV="" # AWS AWS_REGION="" diff --git a/src/judge/contributer/contributer.service.spec.ts b/src/judge/contributer/contributer.service.spec.ts index eb12649..2bc0f86 100644 --- a/src/judge/contributer/contributer.service.spec.ts +++ b/src/judge/contributer/contributer.service.spec.ts @@ -5,6 +5,7 @@ import { PrismaService } from 'app/prisma/prisma.service'; import { ProblemDomain, ProblemExampleDomain, UserDomain } from 'domains'; import { userSignupGen } from 'test/mock-generator'; import { ForbiddenException } from '@nestjs/common'; +import { AwsSqsModule } from 'aws-sqs/aws-sqs'; describe('ContributerService', () => { let service: ContributerService; @@ -23,7 +24,7 @@ describe('ContributerService', () => { beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ - imports: [PrismaModule], + imports: [PrismaModule, AwsSqsModule], providers: [ContributerService], }).compile(); From 660cda80a2d580292a71229865d05cd330ccd90f Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 23:38:43 +0900 Subject: [PATCH 06/68] Fix: Fix create example to get dto and fix as send sqs when example modified --- .../contributer/contributer.controller.ts | 5 +-- .../contributer/contributer.service.spec.ts | 6 +++- src/judge/contributer/contributer.service.ts | 32 +++++++++---------- .../contributer/dto/create-example.dto.ts | 20 ++++++++++++ src/judge/contributer/dto/index.ts | 1 + .../contributer/dto/update-example.dto.ts | 2 +- 6 files changed, 46 insertions(+), 20 deletions(-) create mode 100644 src/judge/contributer/dto/create-example.dto.ts diff --git a/src/judge/contributer/contributer.controller.ts b/src/judge/contributer/contributer.controller.ts index 4c8fa77..b8a361e 100644 --- a/src/judge/contributer/contributer.controller.ts +++ b/src/judge/contributer/contributer.controller.ts @@ -17,7 +17,7 @@ import { RoleGuard } from 'app/guard'; import { UpdateProblmeDto } from 'app/judge/contributer/dto/update-problem.dto'; import { ContributerDocs } from './contributer.docs'; import { ContributerService } from './contributer.service'; -import { UpdateExampleDto } from './dto'; +import { CreateExampleDto, UpdateExampleDto } from './dto'; import { ContributerProblemGuard } from './decorator/contributer-problem.guard'; @Controller() @@ -81,8 +81,9 @@ export class ContributerController { createExample( @GetUser('id') uid: string, @Param('pid', ParseIntPipe) pid: number, + @Body() dto: CreateExampleDto, ) { - return this.contributerService.createExmaple(uid, pid); + return this.contributerService.createExmaple(uid, pid, dto); } @Patch('problems/:pid/examples/:eid') diff --git a/src/judge/contributer/contributer.service.spec.ts b/src/judge/contributer/contributer.service.spec.ts index 2bc0f86..51bbc2a 100644 --- a/src/judge/contributer/contributer.service.spec.ts +++ b/src/judge/contributer/contributer.service.spec.ts @@ -59,7 +59,11 @@ describe('ContributerService', () => { }); it('should create new example of problem1', async () => { // Create example of problem1 - example1 = await service.createExmaple(user1.id, problem1.id); + example1 = await service.createExmaple(user1.id, problem1.id, { + input: '2 3 4', + output: '5 6 7', + isPublic: true, + }); expect(example1).toBeTruthy(); }); }); diff --git a/src/judge/contributer/contributer.service.ts b/src/judge/contributer/contributer.service.ts index 4d3e6cf..d399aec 100644 --- a/src/judge/contributer/contributer.service.ts +++ b/src/judge/contributer/contributer.service.ts @@ -2,7 +2,7 @@ import { ForbiddenException, Injectable } from '@nestjs/common'; import { PaginateObject } from 'app/decorator'; import { UpdateProblmeDto } from 'app/judge/contributer/dto/update-problem.dto'; import { PrismaService } from 'app/prisma/prisma.service'; -import { UpdateExampleDto } from './dto'; +import { CreateExampleDto, UpdateExampleDto } from './dto'; import { AwsSqsService } from 'aws-sqs/aws-sqs'; @Injectable() @@ -49,13 +49,6 @@ export class ContributerService { } async updateProblem(uid: string, pid: number, dto: UpdateProblmeDto) { - const findProblem = await this.prisma.problem.findUnique({ - where: { - id: pid, - contributerId: uid, - }, - }); - // If time limit is lower than 0 if (dto?.timeLimit && dto.timeLimit < 0) { dto.timeLimit = 5; @@ -98,9 +91,10 @@ export class ContributerService { return updatedProblem; } - async createExmaple(uid: string, pid: number) { + async createExmaple(uid: string, pid: number, dto: CreateExampleDto) { return this.prisma.problemExample.create({ data: { + ...dto, problemId: pid, }, }); @@ -112,7 +106,7 @@ export class ContributerService { eid: number, dto: UpdateExampleDto, ) { - const findExample = await this.prisma.problemExample.findUnique({ + const previousExample = await this.prisma.problemExample.findUnique({ where: { id: eid, problemId: pid, @@ -122,15 +116,21 @@ export class ContributerService { }, }); - if (!findExample) { + if (!previousExample) { throw new ForbiddenException('FORBIDDEN_REQUEST'); } - // Send task to client - await this.sqs.sendTask({ - id: pid, - message: 'RE_CORRECTION', - }); + // Only trigger re-correction if it input or out-put modified + if ( + dto.input !== previousExample.input || + dto.output !== previousExample.output + ) { + // Send task to client + await this.sqs.sendTask({ + id: pid, + message: 'RE_CORRECTION', + }); + } return this.prisma.problemExample.update({ where: { diff --git a/src/judge/contributer/dto/create-example.dto.ts b/src/judge/contributer/dto/create-example.dto.ts new file mode 100644 index 0000000..75d001f --- /dev/null +++ b/src/judge/contributer/dto/create-example.dto.ts @@ -0,0 +1,20 @@ +import { OmitType } from '@nestjs/swagger'; +import { IsString, IsOptional, IsBoolean } from 'class-validator'; +import { ProblemExampleDomain } from 'domains'; + +export class CreateExampleDto extends OmitType(ProblemExampleDomain, [ + 'id', + 'problemId', +]) { + @IsString() + @IsOptional() + input: string; + + @IsString() + @IsOptional() + output: string; + + @IsBoolean() + @IsOptional() + isPublic: boolean; +} diff --git a/src/judge/contributer/dto/index.ts b/src/judge/contributer/dto/index.ts index 7f3730d..8ba1e82 100644 --- a/src/judge/contributer/dto/index.ts +++ b/src/judge/contributer/dto/index.ts @@ -1,2 +1,3 @@ export * from './update-problem.dto'; export * from './update-example.dto'; +export * from './create-example.dto'; diff --git a/src/judge/contributer/dto/update-example.dto.ts b/src/judge/contributer/dto/update-example.dto.ts index 11bf305..26ab14b 100644 --- a/src/judge/contributer/dto/update-example.dto.ts +++ b/src/judge/contributer/dto/update-example.dto.ts @@ -1,4 +1,4 @@ -import { ApiProperty, OmitType } from '@nestjs/swagger'; +import { OmitType } from '@nestjs/swagger'; import { IsBoolean, IsOptional, IsString } from 'class-validator'; import { ProblemExampleDomain } from 'domains'; From 95da3d113a3b359516db4ef2d1b44c6b85706635 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 15 Jan 2024 23:54:05 +0900 Subject: [PATCH 07/68] Fix: Fix Github action script --- .github/workflows/pre-test.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index aa807c6..d631c3d 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -32,6 +32,11 @@ jobs: echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env + echo "AWS_REGION"=${{secrets.AWS_REGION}}>> .ci.env + echo "AWS_ACCESS_ID=${{secrets.AWS_ACCESS_ID}}" >> .ci.env + echo "AWS_ACCESS_SECRET=${{secrets.AWS_ACCESS_SECRET}}" >> .ci.env + echo "AWS_SQS_QUEUE=${{secrets.AWS_SQS_QUEUE}}" >> .ci.env + echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies run: npm install --force - name: Install dotenv-cli for dotenv cli @@ -75,6 +80,11 @@ jobs: echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env + echo "AWS_REGION"=${{secrets.AWS_REGION}}>> .ci.env + echo "AWS_ACCESS_ID=${{secrets.AWS_ACCESS_ID}}" >> .ci.env + echo "AWS_ACCESS_SECRET=${{secrets.AWS_ACCESS_SECRET}}" >> .ci.env + echo "AWS_SQS_QUEUE=${{secrets.AWS_SQS_QUEUE}}" >> .ci.env + echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies run: npm install --force - name: Install dotenv-cli for dotenv cli From fde87dfe6ef2da68bab1236f9ccfc7938a7e4b60 Mon Sep 17 00:00:00 2001 From: "Junho Yoon(a.k.a Hoplin)" <45956041+J-Hoplin@users.noreply.github.com> Date: Tue, 16 Jan 2024 00:05:21 +0900 Subject: [PATCH 08/68] Trigger Pipeline --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8372941..cd080a9 100644 --- a/README.md +++ b/README.md @@ -70,4 +70,4 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors ## License -Nest is [MIT licensed](LICENSE). +Nest is [MIT licensed](LICENSE) From 50b9f8a0bf9327afde25b2964f6e792cc338e9e8 Mon Sep 17 00:00:00 2001 From: "Junho Yoon(a.k.a Hoplin)" <45956041+J-Hoplin@users.noreply.github.com> Date: Tue, 16 Jan 2024 00:16:29 +0900 Subject: [PATCH 09/68] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd080a9..e18b53b 100644 --- a/README.md +++ b/README.md @@ -71,3 +71,4 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors ## License Nest is [MIT licensed](LICENSE) +_ From f4c14fbb5d7dee30a1723c724f7a36bd7f36db08 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 16 Jan 2024 00:25:35 +0900 Subject: [PATCH 10/68] Chore: Remove unused migration script --- .platform/hooks/predeploy/01_databse_migration.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.platform/hooks/predeploy/01_databse_migration.sh b/.platform/hooks/predeploy/01_databse_migration.sh index fb9a8e9..20d602b 100644 --- a/.platform/hooks/predeploy/01_databse_migration.sh +++ b/.platform/hooks/predeploy/01_databse_migration.sh @@ -1,3 +1,2 @@ #!/usr/bin/env bash -node node_modules/prisma/build/index.js migrate resolve --applied 20240115050418_proble_is_open From aab9444b85126107b44397d66b22e823301bd9b5 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 16 Jan 2024 01:34:56 +0900 Subject: [PATCH 11/68] Fix: Apply PORT dotenv for worker --- .env | 1 + src/main.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 0b117f3..4195de7 100644 --- a/.env +++ b/.env @@ -14,6 +14,7 @@ JWT_SECRET="SECRET" JUDGE_SERVER_ENDPOINT="" ENV="" +PORT="" # AWS AWS_REGION="" diff --git a/src/main.ts b/src/main.ts index 8542e24..b840aef 100644 --- a/src/main.ts +++ b/src/main.ts @@ -30,6 +30,6 @@ async function bootstrap() { explorer: true, }); - await app.listen(3000); + await app.listen(process.env.PORT || 3000); } bootstrap(); From d3efdca692ad608da4c8346dd118a2c05d6e982e Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 16 Jan 2024 02:04:46 +0900 Subject: [PATCH 12/68] Feat: Add nginx conf --- .platform/nginx/conf.d/base.conf | 7 +++++++ .platform/nginx/conf.d/timeout.conf | 1 + 2 files changed, 8 insertions(+) create mode 100644 .platform/nginx/conf.d/base.conf create mode 100644 .platform/nginx/conf.d/timeout.conf diff --git a/.platform/nginx/conf.d/base.conf b/.platform/nginx/conf.d/base.conf new file mode 100644 index 0000000..695d2a6 --- /dev/null +++ b/.platform/nginx/conf.d/base.conf @@ -0,0 +1,7 @@ +server { + listen 80; + + location / { + proxy_pass http://127.0.0.1:3000; + } +} diff --git a/.platform/nginx/conf.d/timeout.conf b/.platform/nginx/conf.d/timeout.conf new file mode 100644 index 0000000..851fb94 --- /dev/null +++ b/.platform/nginx/conf.d/timeout.conf @@ -0,0 +1 @@ +keepalive_timeout 120; \ No newline at end of file From e617c055d1b17147cb6e34cbf9839bd61eda1184 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 16 Jan 2024 22:42:21 +0900 Subject: [PATCH 13/68] Feat: Add dto to worker service --- libs/aws-sqs/src/dto/index.ts | 1 + libs/aws-sqs/src/dto/worker-dto.ts | 14 ++++++++++++++ libs/aws-sqs/src/type.ts | 7 ++++++- src/worker/worker.controller.ts | 4 ++-- src/worker/worker.docs.ts | 15 +++++++++++++++ src/worker/worker.service.ts | 4 ++-- 6 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 libs/aws-sqs/src/dto/index.ts create mode 100644 libs/aws-sqs/src/dto/worker-dto.ts create mode 100644 src/worker/worker.docs.ts diff --git a/libs/aws-sqs/src/dto/index.ts b/libs/aws-sqs/src/dto/index.ts new file mode 100644 index 0000000..3379698 --- /dev/null +++ b/libs/aws-sqs/src/dto/index.ts @@ -0,0 +1 @@ +export * from './worker-dto'; diff --git a/libs/aws-sqs/src/dto/worker-dto.ts b/libs/aws-sqs/src/dto/worker-dto.ts new file mode 100644 index 0000000..e77e627 --- /dev/null +++ b/libs/aws-sqs/src/dto/worker-dto.ts @@ -0,0 +1,14 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNotEmpty, IsString } from 'class-validator'; +import { SQSMessageType, SQSTask } from '../type'; + +export class WorkerDto implements SQSTask { + @ApiProperty() + @IsString() + @IsNotEmpty() + message: SQSMessageType; + + @ApiProperty() + @IsNotEmpty() + id: string | number; +} diff --git a/libs/aws-sqs/src/type.ts b/libs/aws-sqs/src/type.ts index 0a1be6f..9ec861e 100644 --- a/libs/aws-sqs/src/type.ts +++ b/libs/aws-sqs/src/type.ts @@ -1,4 +1,9 @@ -export type SQSMessageType = 'RE_CORRECTION' | 'CODE_SUBMIT'; +export enum SQSMessageTypeEnum { + RE_CORRECTION, + CODE_SUBMIT, +} + +export type SQSMessageType = keyof typeof SQSMessageTypeEnum; export type SQSTask = { message: SQSMessageType; diff --git a/src/worker/worker.controller.ts b/src/worker/worker.controller.ts index b091723..0be1dc8 100644 --- a/src/worker/worker.controller.ts +++ b/src/worker/worker.controller.ts @@ -1,6 +1,6 @@ import { Body, Controller, HttpCode, Post } from '@nestjs/common'; +import { WorkerDto } from 'aws-sqs/aws-sqs/dto'; import { WorkerService } from './worker.service'; -import { SQSTask } from 'aws-sqs/aws-sqs/type'; @Controller('worker') export class WorkerController { @@ -8,7 +8,7 @@ export class WorkerController { @HttpCode(200) @Post() - workerController(@Body() dto: SQSTask) { + workerController(@Body() dto: WorkerDto) { return this.workerService.worker(dto); } } diff --git a/src/worker/worker.docs.ts b/src/worker/worker.docs.ts new file mode 100644 index 0000000..8e55ab4 --- /dev/null +++ b/src/worker/worker.docs.ts @@ -0,0 +1,15 @@ +import { applyDecorators } from '@nestjs/common'; +import { ApiOkResponse, ApiOperation } from '@nestjs/swagger'; + +export class WorkerDocs { + public static WorkerController() { + return applyDecorators( + ApiOperation({ + summary: 'AWS SQS worker Controller', + }), + ApiOkResponse({ + description: 'If worker task success return 200', + }), + ); + } +} diff --git a/src/worker/worker.service.ts b/src/worker/worker.service.ts index f67c618..1021d4e 100644 --- a/src/worker/worker.service.ts +++ b/src/worker/worker.service.ts @@ -1,6 +1,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { PrismaService } from 'app/prisma/prisma.service'; -import { SQSTask } from 'aws-sqs/aws-sqs/type'; +import { WorkerDto } from 'aws-sqs/aws-sqs/dto'; import { ProblemDomain, SubmissionDomain } from 'domains'; import { Judge0Service } from 'judge/judge0'; @@ -10,7 +10,7 @@ export class WorkerService { constructor(private prisma: PrismaService, private judge0: Judge0Service) {} - async worker(dto: SQSTask) { + async worker(dto: WorkerDto) { switch (dto.message) { // Re-Correct if contributer modify example case 'RE_CORRECTION': From 52ceafeb79a962e510a8d9bd2d732591fec90ef1 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 17 Jan 2024 01:54:49 +0900 Subject: [PATCH 14/68] Feat: Install Sentry dependencies and add .env --- .env | 5 +++- package.json | 2 ++ src/main.ts | 5 ++++ yarn.lock | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 87 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 4195de7..f8ccca8 100644 --- a/.env +++ b/.env @@ -21,4 +21,7 @@ AWS_REGION="" AWS_ACCESS_ID="" AWS_ACCESS_SECRET="" AWS_SQS_QUEUE="" -AWS_S3_BUCKET="" \ No newline at end of file +AWS_S3_BUCKET="" + +# Sentry +SENTRY_DSN="" \ No newline at end of file diff --git a/package.json b/package.json index a11fc06..95e8278 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,8 @@ "@nestjs/platform-express": "^10.0.0", "@nestjs/swagger": "^7.1.16", "@prisma/client": "^5.6.0", + "@sentry/node": "^7.93.0", + "@sentry/profiling-node": "^1.3.5", "@types/multer": "^1.4.11", "axios": "^1.6.2", "bcryptjs": "^2.4.3", diff --git a/src/main.ts b/src/main.ts index b840aef..50e5a7c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -18,6 +18,11 @@ async function bootstrap() { const config = new DocumentBuilder() .setTitle('Online-Judge-Server') .setDescription('Online Judge Server') + .setContact( + 'J-Hoplin', + 'https://github.com/J-Hoplin', + 'hoplin.dev@gmail.com', + ) .setVersion('1.0') .addBearerAuth() .build(); diff --git a/yarn.lock b/yarn.lock index 23e5345..ee53fcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1817,6 +1817,54 @@ resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.6.0.tgz#82c445aa10633bbc0388aa2d6e411a0bd94c9439" integrity sha512-Mt2q+GNJpU2vFn6kif24oRSBQv1KOkYaterQsi0k2/lA+dLvhRX6Lm26gon6PYHwUM8/h8KRgXIUMU0PCLB6bw== +"@sentry-internal/tracing@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.93.0.tgz#8cee8b610695d828af75edd2929b64b7caf0385d" + integrity sha512-DjuhmQNywPp+8fxC9dvhGrqgsUb6wI/HQp25lS2Re7VxL1swCasvpkg8EOYP4iBniVQ86QK0uITkOIRc5tdY1w== + dependencies: + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" + +"@sentry/core@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.93.0.tgz#50a14bf305130dfef51810e4c97fcba4972a57ef" + integrity sha512-vZQSUiDn73n+yu2fEcH+Wpm4GbRmtxmnXnYCPgM6IjnXqkVm3awWAkzrheADblx3kmxrRiOlTXYHw9NTWs56fg== + dependencies: + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" + +"@sentry/node@^7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.93.0.tgz#7786d05d1e3e984207a866b07df1bf891355892e" + integrity sha512-nUXPCZQm5Y9Ipv7iWXLNp5dbuyi1VvbJ3RtlwD7utgsNkRYB4ixtKE9w2QU8DZZAjaEF6w2X94OkYH6C932FWw== + dependencies: + "@sentry-internal/tracing" "7.93.0" + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" + https-proxy-agent "^5.0.0" + +"@sentry/profiling-node@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@sentry/profiling-node/-/profiling-node-1.3.5.tgz#e7e15fae88745b4c062ca49086bf85688b6ffe66" + integrity sha512-n2bfEbtLW3WuIMQGyxKJKzBNZOb1JYfMeJQ2WQn/42F++69m+u7T0S3EDGRN0Y//fbt5+r0any+4r3kChRXZkQ== + dependencies: + detect-libc "^2.0.2" + node-abi "^3.52.0" + +"@sentry/types@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.93.0.tgz#d76d26259b40cd0688e1d634462fbff31476c1ec" + integrity sha512-UnzUccNakhFRA/esWBWP+0v7cjNg+RilFBQC03Mv9OEMaZaS29zSbcOGtRzuFOXXLBdbr44BWADqpz3VW0XaNw== + +"@sentry/utils@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.93.0.tgz#36225038661fe977baf01e4695ef84794d591e45" + integrity sha512-Iovj7tUnbgSkh/WrAaMrd5UuYjW7AzyzZlFDIUrwidsyIdUficjCG2OIxYzh76H6nYIx9SxewW0R54Q6XoB4uA== + dependencies: + "@sentry/types" "7.93.0" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -3121,6 +3169,13 @@ acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + ajv-formats@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" @@ -3785,7 +3840,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3838,6 +3893,11 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -4601,6 +4661,14 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -5664,6 +5732,13 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +node-abi@^3.52.0: + version "3.54.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.54.0.tgz#f6386f7548817acac6434c6cba02999c9aebcc69" + integrity sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA== + dependencies: + semver "^7.3.5" + node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" From 0f4a53866812a416f549ad4aade5db5fb3beccc1 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 17 Jan 2024 23:19:16 +0900 Subject: [PATCH 15/68] Feat: Sentry Integration --- src/filter/index.ts | 1 + src/filter/sentry.filter.ts | 11 +++++++++++ src/main.ts | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/filter/index.ts create mode 100644 src/filter/sentry.filter.ts diff --git a/src/filter/index.ts b/src/filter/index.ts new file mode 100644 index 0000000..ba11ca9 --- /dev/null +++ b/src/filter/index.ts @@ -0,0 +1 @@ +export * from './sentry.filter'; diff --git a/src/filter/sentry.filter.ts b/src/filter/sentry.filter.ts new file mode 100644 index 0000000..185d0f3 --- /dev/null +++ b/src/filter/sentry.filter.ts @@ -0,0 +1,11 @@ +import { ArgumentsHost, Catch } from '@nestjs/common'; +import { BaseExceptionFilter } from '@nestjs/core'; +import * as Sentry from '@sentry/node'; + +@Catch() +export class SentryFilter extends BaseExceptionFilter { + catch(exception: any, host: ArgumentsHost): void { + Sentry.captureException(exception); + super.catch(exception, host); + } +} diff --git a/src/main.ts b/src/main.ts index 50e5a7c..dbed08d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,11 +1,17 @@ import { ValidationPipe } from '@nestjs/common'; -import { NestFactory } from '@nestjs/core'; +import { HttpAdapterHost, NestFactory } from '@nestjs/core'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; import { InitializeAdmin } from './admin-init'; import { AppModule } from './app.module'; +import { SentryFilter } from './filter'; +import * as Sentry from '@sentry/node'; async function bootstrap() { const app = await NestFactory.create(AppModule); + + // Get Express http adapter + const { httpAdapter } = app.get(HttpAdapterHost); + app.enableCors(); app.useGlobalPipes( // Docs: https://docs.nestjs.com/techniques/validation @@ -35,6 +41,14 @@ async function bootstrap() { explorer: true, }); + // Sentry + Sentry.init({ + dsn: process.env.SENTRY_DSN, + tracesSampleRate: 1.0, + profilesSampleRate: 1.0, + }); + app.useGlobalFilters(new SentryFilter(httpAdapter)); + await app.listen(process.env.PORT || 3000); } bootstrap(); From e13659dcedcb84bbc45becf262e808f32d98c0b2 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 00:39:37 +0900 Subject: [PATCH 16/68] Feat: Apply Image uploader and config, factory and add Static artifact uplaoder --- libs/aws-s3/src/aws-s3.service.ts | 13 ++- src/app.module.ts | 2 + src/artifact/artifact.controller.ts | 31 +++++++ src/artifact/artifact.docs.ts | 30 +++++++ src/artifact/artifact.module.ts | 11 +++ src/artifact/artifact.service.ts | 38 ++++++++ src/artifact/dto/index.ts | 1 + .../dto/upload-static-artifact.dto.ts | 11 +++ src/artifact/response/index.ts | 1 + .../upload-static-artifact.response.ts | 9 ++ src/config/artifact-directory.config.ts | 10 +++ src/config/artifact.config.ts | 89 +++++++++++++++++++ src/config/index.ts | 2 + 13 files changed, 245 insertions(+), 3 deletions(-) create mode 100644 src/artifact/artifact.controller.ts create mode 100644 src/artifact/artifact.docs.ts create mode 100644 src/artifact/artifact.module.ts create mode 100644 src/artifact/artifact.service.ts create mode 100644 src/artifact/dto/index.ts create mode 100644 src/artifact/dto/upload-static-artifact.dto.ts create mode 100644 src/artifact/response/index.ts create mode 100644 src/artifact/response/upload-static-artifact.response.ts create mode 100644 src/config/artifact-directory.config.ts create mode 100644 src/config/artifact.config.ts create mode 100644 src/config/index.ts diff --git a/libs/aws-s3/src/aws-s3.service.ts b/libs/aws-s3/src/aws-s3.service.ts index afdc6dd..9d522b8 100644 --- a/libs/aws-s3/src/aws-s3.service.ts +++ b/libs/aws-s3/src/aws-s3.service.ts @@ -22,6 +22,8 @@ import { v4 } from 'uuid'; * getSignedURL: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_request_presigner.html * PutObjectCommand: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/classes/putobjectcommand.html * + * + * 2024 Hoplin */ @Injectable() @@ -43,20 +45,25 @@ export class AwsS3Service { } /** Upload file */ - public async uploadFile(file: Express.Multer.File, directory: string) { + public async uploadFile( + file: Express.Multer.File, + directory: string, + tag?: { [k: string]: string }, + ) { /** Generate file salt */ const fileSalt = v4(); /** File name with salt */ const fileKey = `${fileSalt}_${file.originalname}`; /** S3 upload location */ const s3SavedIn = this.directoryBuilder(fileKey, directory); + const tagQuery = tag ? new URLSearchParams(tag).toString() : ''; /** S3 Object put command */ const command = new PutObjectCommand({ Bucket: this.s3Bucket, Key: s3SavedIn, ContentType: file.mimetype, Body: file.buffer, - ACL: 'public-read', + Tagging: tagQuery, }); await this.s3Client.send(command); @@ -70,7 +77,7 @@ export class AwsS3Service { return null; } return `https://${process.env.AWS_S3_BUCKET}.s3.${ - process.env.AWS_S3_Region + process.env.AWS_REGION }.amazonaws.com/${this.directoryBuilder(fileKey, directory)}`; } diff --git a/src/app.module.ts b/src/app.module.ts index 17d27ae..d5c2209 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -8,6 +8,7 @@ import { ConfigModule } from '@nestjs/config'; import { JudgeModule } from './judge/judge.module'; import { SystemLoggerModule } from './system-logger/system-logger.module'; import { WorkerModule } from './worker/worker.module'; +import { ArtifactModule } from './artifact/artifact.module'; @Module({ imports: [ @@ -18,6 +19,7 @@ import { WorkerModule } from './worker/worker.module'; UserModule, JudgeModule, WorkerModule, + ArtifactModule, ], controllers: [AppController], providers: [AppService], diff --git a/src/artifact/artifact.controller.ts b/src/artifact/artifact.controller.ts new file mode 100644 index 0000000..966e994 --- /dev/null +++ b/src/artifact/artifact.controller.ts @@ -0,0 +1,31 @@ +import { + Controller, + Post, + UploadedFile, + UseInterceptors, +} from '@nestjs/common'; +import { FileInterceptor } from '@nestjs/platform-express'; +import { + FileNameTransformPipe, + FileOptionFactory, + StaticArtifactConfig, +} from 'app/config/artifact.config'; +import { ArtifactDocs } from './artifact.docs'; +import { ArtifactService } from './artifact.service'; + +@Controller('artifact') +@ArtifactDocs.Controller() +export class ArtifactController { + constructor(private artifactService: ArtifactService) {} + + @Post('static') + @UseInterceptors( + FileInterceptor('artifact', FileOptionFactory(StaticArtifactConfig)), + ) + @ArtifactDocs.uploadStaticArtifact() + uploadStaticArtifact( + @UploadedFile(FileNameTransformPipe) file: Express.Multer.File, + ) { + return this.artifactService.uploadStaticArtifact(file); + } +} diff --git a/src/artifact/artifact.docs.ts b/src/artifact/artifact.docs.ts new file mode 100644 index 0000000..bf34d85 --- /dev/null +++ b/src/artifact/artifact.docs.ts @@ -0,0 +1,30 @@ +import { applyDecorators } from '@nestjs/common'; +import { + ApiBody, + ApiConsumes, + ApiCreatedResponse, + ApiOperation, + ApiTags, +} from '@nestjs/swagger'; +import { UploadStaticArtifactDto } from './dto'; +import { UploadStaticArtifactResponse } from './response'; + +export class ArtifactDocs { + public static Controller() { + return applyDecorators(ApiTags('Artifact')); + } + public static uploadStaticArtifact() { + return applyDecorators( + ApiOperation({ + summary: 'Static File Upload. Public Artifact 업로드', + }), + ApiConsumes('multipart/form-data'), + ApiBody({ + type: UploadStaticArtifactDto, + }), + ApiCreatedResponse({ + type: UploadStaticArtifactResponse, + }), + ); + } +} diff --git a/src/artifact/artifact.module.ts b/src/artifact/artifact.module.ts new file mode 100644 index 0000000..e87ace8 --- /dev/null +++ b/src/artifact/artifact.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { ArtifactController } from './artifact.controller'; +import { ArtifactService } from './artifact.service'; +import { AwsS3Module } from 's3/aws-s3'; + +@Module({ + imports: [AwsS3Module], + controllers: [ArtifactController], + providers: [ArtifactService], +}) +export class ArtifactModule {} diff --git a/src/artifact/artifact.service.ts b/src/artifact/artifact.service.ts new file mode 100644 index 0000000..a7c2c71 --- /dev/null +++ b/src/artifact/artifact.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@nestjs/common'; +import { StaticArtifactDir } from 'app/config'; +import { AwsS3Service } from 's3/aws-s3'; +import { UploadStaticArtifactResponse } from './response'; + +@Injectable() +export class ArtifactService { + constructor(private s3: AwsS3Service) {} + + async uploadStaticArtifact( + file: Express.Multer.File, + ): Promise { + try { + const fileKey = await this.s3.uploadFile(file, StaticArtifactDir, { + public: 'true', + }); + const url = this.s3.getStaticURL(fileKey, StaticArtifactDir); + return { + success: true, + url, + }; + } catch (err) { + console.log(err); + return { + success: false, + url: '', + }; + } + } +} + +/** + * Bucket Policy + * + * Set tag "public=true" to set artifact public access + * + * https://repost.aws/knowledge-center/read-access-objects-s3-bucket + */ diff --git a/src/artifact/dto/index.ts b/src/artifact/dto/index.ts new file mode 100644 index 0000000..9fafeae --- /dev/null +++ b/src/artifact/dto/index.ts @@ -0,0 +1 @@ +export * from './upload-static-artifact.dto'; diff --git a/src/artifact/dto/upload-static-artifact.dto.ts b/src/artifact/dto/upload-static-artifact.dto.ts new file mode 100644 index 0000000..eb2fae5 --- /dev/null +++ b/src/artifact/dto/upload-static-artifact.dto.ts @@ -0,0 +1,11 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsOptional } from 'class-validator'; + +export class UploadStaticArtifactDto { + @ApiProperty({ + type: 'string', + format: 'binary', + }) + @IsOptional() + artifact: Express.Multer.File; +} diff --git a/src/artifact/response/index.ts b/src/artifact/response/index.ts new file mode 100644 index 0000000..5bdf384 --- /dev/null +++ b/src/artifact/response/index.ts @@ -0,0 +1 @@ +export * from './upload-static-artifact.response'; diff --git a/src/artifact/response/upload-static-artifact.response.ts b/src/artifact/response/upload-static-artifact.response.ts new file mode 100644 index 0000000..28c5c84 --- /dev/null +++ b/src/artifact/response/upload-static-artifact.response.ts @@ -0,0 +1,9 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class UploadStaticArtifactResponse { + @ApiProperty() + success: boolean; + + @ApiProperty() + url: string; +} diff --git a/src/config/artifact-directory.config.ts b/src/config/artifact-directory.config.ts new file mode 100644 index 0000000..5d75019 --- /dev/null +++ b/src/config/artifact-directory.config.ts @@ -0,0 +1,10 @@ +/** + * S3 Bucket Destination + * + * + * Follow this format: (root)/~~/(dir) + */ + +export const UserProfileImageDir = 'user/profile'; + +export const StaticArtifactDir = 'statics'; diff --git a/src/config/artifact.config.ts b/src/config/artifact.config.ts new file mode 100644 index 0000000..ee9e62a --- /dev/null +++ b/src/config/artifact.config.ts @@ -0,0 +1,89 @@ +import { + ArgumentMetadata, + Injectable, + PipeTransform, + UnprocessableEntityException, +} from '@nestjs/common'; +import { MulterOptions } from '@nestjs/platform-express/multer/interfaces/multer-options.interface'; +import { + ApiPayloadTooLargeResponse, + ApiUnprocessableEntityResponse, +} from '@nestjs/swagger'; + +// Interface type of artifact limit configuration +interface ArtifactValidationConfig { + size: number; + + extension: RegExp; +} + +// Util: MB unit to Byte +const mbt2bt = (mbt: number) => { + return mbt * 1024 * 1024; +}; + +/** + * Util FileNameTransformerPipe + * + * https://github.com/expressjs/multer/issues/1104 + * + * https://github.com/mscdex/busboy/issues/20 + * + * Multer use internally use 'BusBoy' package which is streaming parser of Form Data + * + * Clients should be sending non-latin1 header parameter values using the format (encoded words) defined by RFC5987. If they don't send that, then the values are assumed to be encoded as latin1 + */ +@Injectable() +export class FileNameTransformPipe implements PipeTransform { + transform(value: Express.Multer.File, metadata: ArgumentMetadata) { + if (value) { + value.originalname = Buffer.from(value.originalname, 'latin1').toString( + 'utf-8', + ); + return value; + } + return value; + } +} + +// File Option Factory +export const FileOptionFactory = ( + config: ArtifactValidationConfig, +): MulterOptions => { + return { + limits: { + fileSize: mbt2bt(config.size), + }, + fileFilter: (req, file, cb) => { + if (file.originalname.toLowerCase().match(config.extension)) { + cb(null, true); + } else { + cb(new UnprocessableEntityException('UNSUPPORTED_EXTENSION'), false); + } + }, + }; +}; + +// File Option Validation error swagger document +export const FileValidationErrorDocs = () => { + return [ + ApiPayloadTooLargeResponse({ + description: 'FILE_SIZE_LIMIT_EXCEED', + }), + ApiUnprocessableEntityResponse({ + description: 'UNSUPPORTED_EXTENSION', + }), + ]; +}; + +//Config + +export const UserProfileImageArtifactConfig: ArtifactValidationConfig = { + size: 10, + extension: /^.*\.(jpg|jpeg|png)$/, +}; + +export const StaticArtifactConfig: ArtifactValidationConfig = { + size: 10, + extension: /^.*\.[a-zA-Z0-9]+$/, +}; diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 0000000..8dd9253 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,2 @@ +export * from './artifact-directory.config'; +export * from './artifact.config'; From 07ff20ef08e8ac32ec153e80ee010133a5cf1ed9 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 00:48:57 +0900 Subject: [PATCH 17/68] Feat: Add profileImage to user schema and domain. Add Migration Script --- .../hooks/predeploy/01_databse_migration.sh | 1 + domain/user.domain.ts | 5 ++ .../migration.sql | 2 + prisma/schema.prisma | 47 ++++++++++--------- 4 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 prisma/migrations/20240117154221_user_profile_image/migration.sql diff --git a/.platform/hooks/predeploy/01_databse_migration.sh b/.platform/hooks/predeploy/01_databse_migration.sh index 20d602b..a213ed7 100644 --- a/.platform/hooks/predeploy/01_databse_migration.sh +++ b/.platform/hooks/predeploy/01_databse_migration.sh @@ -1,2 +1,3 @@ #!/usr/bin/env bash +node node_modules/prisma/build/index.js migrate resolve --applied 20240117154221_user_profile_image \ No newline at end of file diff --git a/domain/user.domain.ts b/domain/user.domain.ts index f850d66..fd964e7 100644 --- a/domain/user.domain.ts +++ b/domain/user.domain.ts @@ -21,6 +21,11 @@ export class UserDomain implements User { }) message: string; + @ApiProperty({ + required: false, + }) + profileImage: string; + @ApiProperty({ required: false, }) diff --git a/prisma/migrations/20240117154221_user_profile_image/migration.sql b/prisma/migrations/20240117154221_user_profile_image/migration.sql new file mode 100644 index 0000000..e263476 --- /dev/null +++ b/prisma/migrations/20240117154221_user_profile_image/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `user` ADD COLUMN `profileImage` VARCHAR(191) NULL; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7619607..5763244 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -12,19 +12,20 @@ datasource db { } model User { - id String @id @default(uuid()) - nickname String @unique - password String - email String @unique - message String? - github String? - blog String? - type UserType? @default(User) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - problems Problem[] - Submission Submission[] - Issues ProblemIssue[] + id String @id @default(uuid()) + nickname String @unique + password String + email String @unique + message String? + github String? + blog String? + profileImage String? + type UserType? @default(User) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + problems Problem[] + Submission Submission[] + Issues ProblemIssue[] IssueComments ProblemIssueComment[] @@map("user") @@ -57,7 +58,7 @@ model Problem { isArchived Boolean @default(false) deletedAt DateTime? - issues ProblemIssue[] + issues ProblemIssue[] comments ProblemIssueComment[] createdAt DateTime @default(now()) @@ -121,15 +122,15 @@ model Submission { } model ProblemIssue { - id Int @id @default(autoincrement()) - title String @db.VarChar(100) @default("Title Here") - content String @db.Text + id Int @id @default(autoincrement()) + title String @default("Title Here") @db.VarChar(100) + content String @db.Text // 1:N relation with Problem problemId Int problem Problem @relation(references: [id], fields: [problemId], onDelete: Cascade) // 1:N relation with User - issuerId String - issuer User @relation(references: [id], fields: [issuerId], onDelete: Cascade) + issuerId String + issuer User @relation(references: [id], fields: [issuerId], onDelete: Cascade) comments ProblemIssueComment[] @@ -137,17 +138,17 @@ model ProblemIssue { } model ProblemIssueComment { - id Int @id @default(autoincrement()) + id Int @id @default(autoincrement()) content String @db.Text issueId Int issue ProblemIssue @relation(fields: [issueId], references: [id], onDelete: Cascade, onUpdate: Cascade) - userId String - user User @relation(fields: [userId],references: [id],onDelete: Cascade, onUpdate: Cascade) + userId String + user User @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade) problemId Int - problem Problem @relation(references: [id],fields: [problemId]) + problem Problem @relation(references: [id], fields: [problemId]) @@map("problem_issue_comment") } From ee4e426a27d5084eb7760ed03c1ff8d01ecab9ef Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 01:03:44 +0900 Subject: [PATCH 18/68] Feat: Add profile image upload to user API --- src/user/dto/update-user-info.dto.ts | 8 ++++++++ src/user/user.controller.ts | 22 ++++++++++++++++++++-- src/user/user.docs.ts | 2 ++ src/user/user.module.ts | 2 ++ src/user/user.service.ts | 26 +++++++++++++++++++++++--- 5 files changed, 55 insertions(+), 5 deletions(-) diff --git a/src/user/dto/update-user-info.dto.ts b/src/user/dto/update-user-info.dto.ts index 6c9f61d..d591de5 100644 --- a/src/user/dto/update-user-info.dto.ts +++ b/src/user/dto/update-user-info.dto.ts @@ -31,4 +31,12 @@ export class UpdateUserInfoDto extends PickType(UserDomain, [ @IsString() @IsNotEmpty() password: string; + + @ApiProperty({ + required: false, + type: 'string', + format: 'binary', + }) + @IsOptional() + profile?: Express.Multer.File; } diff --git a/src/user/user.controller.ts b/src/user/user.controller.ts index 078da7a..99770a3 100644 --- a/src/user/user.controller.ts +++ b/src/user/user.controller.ts @@ -6,7 +6,9 @@ import { Param, Patch, Post, + UploadedFile, UseGuards, + UseInterceptors, } from '@nestjs/common'; import { LocalGuard } from 'app/auth/guard'; import { CheckCredentialDto, UpdatePasswordDto } from './dto'; @@ -18,6 +20,12 @@ import { Role } from 'app/decorator/role.decorator'; import { RoleGuard } from 'app/guard'; import { SetContributerDto } from './dto/set-contributor'; import { UserDomain } from 'domains'; +import { FileInterceptor } from '@nestjs/platform-express'; +import { + FileNameTransformPipe, + FileOptionFactory, + UserProfileImageArtifactConfig, +} from 'app/config'; @Controller('user') @UserDocs.Controller() @@ -46,10 +54,20 @@ export class UserController { } @Patch('profile') + @UseInterceptors( + FileInterceptor( + 'profile', + FileOptionFactory(UserProfileImageArtifactConfig), + ), + ) @UseGuards(LocalGuard) @UserDocs.updateUserInfo() - updateUserInfo(@GetUser() user: UserDomain, @Body() dto: UpdateUserInfoDto) { - return this.userService.updateUserInfo(user, dto); + updateUserInfo( + @GetUser() user: UserDomain, + @Body() dto: UpdateUserInfoDto, + @UploadedFile(FileNameTransformPipe) file: Express.Multer.File, + ) { + return this.userService.updateUserInfo(user, dto, file); } @Patch('password') diff --git a/src/user/user.docs.ts b/src/user/user.docs.ts index 779b50a..b842ea3 100644 --- a/src/user/user.docs.ts +++ b/src/user/user.docs.ts @@ -2,6 +2,7 @@ import { applyDecorators } from '@nestjs/common'; import { ApiBadRequestResponse, ApiBearerAuth, + ApiConsumes, ApiOkResponse, ApiOperation, ApiTags, @@ -60,6 +61,7 @@ export class UserDocs { summary: '사용자 정보 업데이트', description: 'Password가 요구됩니다.', }), + ApiConsumes('multipart/form-data'), ApiOkResponse({ type: UserDomain, }), diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 1ddbb61..673b6ee 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common'; import { UserController } from './user.controller'; import { UserService } from './user.service'; +import { AwsS3Module } from 's3/aws-s3'; @Module({ + imports: [AwsS3Module], controllers: [UserController], providers: [UserService], }) diff --git a/src/user/user.service.ts b/src/user/user.service.ts index 05e32bd..dd0e82e 100644 --- a/src/user/user.service.ts +++ b/src/user/user.service.ts @@ -11,10 +11,12 @@ import { UserDomain } from 'domains'; import { CheckCredentialDto, CredentialType, UpdatePasswordDto } from './dto'; import { SetContributerDto } from './dto/set-contributor'; import { UpdateUserInfoDto } from './dto/update-user-info.dto'; +import { AwsS3Service } from 's3/aws-s3'; +import { UserProfileImageDir } from 'app/config'; @Injectable() export class UserService { - constructor(private prisma: PrismaService) {} + constructor(private prisma: PrismaService, private s3: AwsS3Service) {} async getProfile(uid: string) { const user = await this.prisma.user.findUnique({ @@ -52,14 +54,28 @@ export class UserService { }; } - async updateUserInfo(user: UserDomain, dto: UpdateUserInfoDto) { + async updateUserInfo( + user: UserDomain, + dto: UpdateUserInfoDto, + file: Express.Multer.File, + ) { const validatePassword = await bcrypt.compare(dto.password, user.password); // If fail to validate if (!validatePassword) { throw new UnauthorizedException('WRONG_CREDENTIAL'); } + delete dto.password; + delete dto.profile; + const data = { + ...dto, + }; + + if (file) { + const key = await this.s3.uploadFile(file, UserProfileImageDir); + data['profileImage'] = key; + } try { // If not update @@ -68,9 +84,13 @@ export class UserService { id: user.id, }, data: { - ...dto, + ...data, }, }); + updatedUser.profileImage = await this.s3.getSignedURL( + updatedUser.profileImage, + UserProfileImageDir, + ); return updatedUser; } catch (err) { if (err instanceof PrismaClientKnownRequestError) { From 33d9d90f984e2bb96edd7c81cdcfa7c5cc378042 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 01:44:43 +0900 Subject: [PATCH 19/68] Feat: Security Update --- src/user/response/get-profile.response.ts | 4 ++ src/user/user.controller.ts | 2 +- src/user/user.docs.ts | 8 +-- src/user/user.service.spec.ts | 69 +++++++++++++++-------- src/user/user.service.ts | 26 ++++++++- 5 files changed, 80 insertions(+), 29 deletions(-) create mode 100644 src/user/response/get-profile.response.ts diff --git a/src/user/response/get-profile.response.ts b/src/user/response/get-profile.response.ts new file mode 100644 index 0000000..0824337 --- /dev/null +++ b/src/user/response/get-profile.response.ts @@ -0,0 +1,4 @@ +import { OmitType } from '@nestjs/swagger'; +import { UserDomain } from 'domains'; + +export class GetProfileResponse extends OmitType(UserDomain, ['password']) {} diff --git a/src/user/user.controller.ts b/src/user/user.controller.ts index 99770a3..e401b0d 100644 --- a/src/user/user.controller.ts +++ b/src/user/user.controller.ts @@ -36,7 +36,7 @@ export class UserController { @UseGuards(LocalGuard) @UserDocs.GetMyProfile() getMyProfile(@GetUser() user: UserDomain) { - return user; + return this.userService.getMyProfile(user); } @Get('profile/:uid') diff --git a/src/user/user.docs.ts b/src/user/user.docs.ts index b842ea3..8db96d0 100644 --- a/src/user/user.docs.ts +++ b/src/user/user.docs.ts @@ -8,7 +8,7 @@ import { ApiTags, } from '@nestjs/swagger'; import { CheckCredentialResponse } from './response/check-credential.response'; -import { UserDomain } from 'domains'; +import { GetProfileResponse } from './response/get-profile.response'; export class UserDocs { public static Controller() { @@ -21,7 +21,7 @@ export class UserDocs { summary: '프로필 조회', }), ApiOkResponse({ - type: UserDomain, + type: GetProfileResponse, }), ApiBearerAuth(), ); @@ -33,7 +33,7 @@ export class UserDocs { summary: '다른 사용자 프로필 조회', }), ApiOkResponse({ - type: UserDomain, + type: GetProfileResponse, }), ApiBadRequestResponse({ description: ['USER_NOT_FOUND'].join(', '), @@ -63,7 +63,7 @@ export class UserDocs { }), ApiConsumes('multipart/form-data'), ApiOkResponse({ - type: UserDomain, + type: GetProfileResponse, }), ApiBearerAuth(), ); diff --git a/src/user/user.service.spec.ts b/src/user/user.service.spec.ts index e158580..8039ec1 100644 --- a/src/user/user.service.spec.ts +++ b/src/user/user.service.spec.ts @@ -7,6 +7,7 @@ import { BadRequestException, UnauthorizedException } from '@nestjs/common'; import { CredentialType } from './dto'; import * as bcrypt from 'bcryptjs'; import { UserDomain } from 'domains'; +import { AwsS3Module } from 's3/aws-s3'; describe('UserService', () => { let service: UserService; @@ -24,7 +25,7 @@ describe('UserService', () => { beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ - imports: [PrismaModule], + imports: [PrismaModule, AwsS3Module], providers: [UserService], }).compile(); @@ -108,25 +109,37 @@ describe('UserService', () => { describe('updateUserInfo()', () => { it('should update user profile', async () => { - const result = await service.updateUserInfo(user3, { - blog: 'jhoplin7259.tistory.com', - nickname: 'nickname', - github: 'J-hoplin1', - message: 'message', - password: user3Singup.password, - }); + const result = await service.updateUserInfo( + { + ...user3, + }, + { + blog: 'jhoplin7259.tistory.com', + nickname: 'nickname', + github: 'J-hoplin1', + message: 'message', + password: user3Singup.password, + }, + null, + ); expect(result).not.toBeUndefined(); }); it('should throw if password unmatched', async () => { try { - await service.updateUserInfo(user3, { - blog: 'jhoplin7259.tistory.com', - nickname: 'nickname2', - github: 'J-hoplin1', - message: 'message', - password: 'wrong-password', - }); + await service.updateUserInfo( + { + ...user3, + }, + { + blog: 'jhoplin7259.tistory.com', + nickname: 'nickname2', + github: 'J-hoplin1', + message: 'message', + password: 'wrong-password', + }, + null, + ); } catch (err) { expect(err).toBeInstanceOf(UnauthorizedException); } @@ -161,20 +174,30 @@ describe('UserService', () => { describe('setRole()', () => { it("should update user's role", async () => { - const updated = await service.setRole(user2, { - role: 'Contributer', - targetId: user3.id, - }); + const updated = await service.setRole( + { + ...user2, + }, + { + role: 'Contributer', + targetId: user3.id, + }, + ); expect(updated.id).toBe(user3.id); expect(updated.type).toBe('Contributer'); }); it('should throw if user not found', async () => { try { - await service.setRole(user2, { - role: 'Contributer', - targetId: 'target', - }); + await service.setRole( + { + ...user2, + }, + { + role: 'Contributer', + targetId: 'target', + }, + ); } catch (err) { expect(err).toBeInstanceOf(BadRequestException); } diff --git a/src/user/user.service.ts b/src/user/user.service.ts index dd0e82e..601fd50 100644 --- a/src/user/user.service.ts +++ b/src/user/user.service.ts @@ -18,15 +18,35 @@ import { UserProfileImageDir } from 'app/config'; export class UserService { constructor(private prisma: PrismaService, private s3: AwsS3Service) {} + async getMyProfile(user: UserDomain) { + user.profileImage = await this.s3.getSignedURL( + user.profileImage, + UserProfileImageDir, + ); + + delete user.password; + return user; + } + async getProfile(uid: string) { const user = await this.prisma.user.findUnique({ where: { id: uid, }, }); + if (!user) { throw new BadRequestException('USER_NOT_FOUND'); } + + user.profileImage = await this.s3.getSignedURL( + user.profileImage, + UserProfileImageDir, + ); + + // Remove Password field of user + delete user.password; + return user; } @@ -57,7 +77,7 @@ export class UserService { async updateUserInfo( user: UserDomain, dto: UpdateUserInfoDto, - file: Express.Multer.File, + file?: Express.Multer.File, ) { const validatePassword = await bcrypt.compare(dto.password, user.password); @@ -68,6 +88,7 @@ export class UserService { delete dto.password; delete dto.profile; + const data = { ...dto, }; @@ -91,6 +112,9 @@ export class UserService { updatedUser.profileImage, UserProfileImageDir, ); + + delete user.password; + return updatedUser; } catch (err) { if (err instanceof PrismaClientKnownRequestError) { From 73a11837dcc8012860f46a63e15c70c337e014ac Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 02:01:18 +0900 Subject: [PATCH 20/68] Patch: Security Patch email --- src/auth/dto/signin.dto.ts | 2 ++ src/auth/dto/signup.dto.ts | 2 ++ src/worker/worker.controller.ts | 3 +++ src/worker/worker.docs.ts | 5 ++++- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/auth/dto/signin.dto.ts b/src/auth/dto/signin.dto.ts index eb90d52..0a43334 100644 --- a/src/auth/dto/signin.dto.ts +++ b/src/auth/dto/signin.dto.ts @@ -1,8 +1,10 @@ import { PickType } from '@nestjs/swagger'; +import { Transform } from 'class-transformer'; import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; import { UserDomain } from 'domains'; export class SigninDto extends PickType(UserDomain, ['email', 'password']) { + @Transform(({ value }) => value.trim().toLowerCase()) @IsEmail() @IsNotEmpty() email: string; diff --git a/src/auth/dto/signup.dto.ts b/src/auth/dto/signup.dto.ts index e135428..b16950f 100644 --- a/src/auth/dto/signup.dto.ts +++ b/src/auth/dto/signup.dto.ts @@ -1,4 +1,5 @@ import { PickType } from '@nestjs/swagger'; +import { Transform } from 'class-transformer'; import { IsEmail, IsNotEmpty, IsString } from 'class-validator'; import { UserDomain } from 'domains'; @@ -7,6 +8,7 @@ export class SingupDto extends PickType(UserDomain, [ 'password', 'email', ]) { + @Transform(({ value }) => value.trim().toLowerCase()) @IsString() @IsNotEmpty() nickname: string; diff --git a/src/worker/worker.controller.ts b/src/worker/worker.controller.ts index 0be1dc8..fbc6db0 100644 --- a/src/worker/worker.controller.ts +++ b/src/worker/worker.controller.ts @@ -1,13 +1,16 @@ import { Body, Controller, HttpCode, Post } from '@nestjs/common'; import { WorkerDto } from 'aws-sqs/aws-sqs/dto'; import { WorkerService } from './worker.service'; +import { WorkerDocs } from './worker.docs'; @Controller('worker') +@WorkerDocs.Controller() export class WorkerController { constructor(private workerService: WorkerService) {} @HttpCode(200) @Post() + @WorkerDocs.WorkerController() workerController(@Body() dto: WorkerDto) { return this.workerService.worker(dto); } diff --git a/src/worker/worker.docs.ts b/src/worker/worker.docs.ts index 8e55ab4..a6dac40 100644 --- a/src/worker/worker.docs.ts +++ b/src/worker/worker.docs.ts @@ -1,7 +1,10 @@ import { applyDecorators } from '@nestjs/common'; -import { ApiOkResponse, ApiOperation } from '@nestjs/swagger'; +import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger'; export class WorkerDocs { + public static Controller() { + return applyDecorators(ApiTags('Async Task')); + } public static WorkerController() { return applyDecorators( ApiOperation({ From baab104a9e4dbd4b908da1a4dddd1d4f60415756 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Thu, 18 Jan 2024 02:13:35 +0900 Subject: [PATCH 21/68] Chore: Remove unused migration script --- .platform/hooks/predeploy/01_databse_migration.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.platform/hooks/predeploy/01_databse_migration.sh b/.platform/hooks/predeploy/01_databse_migration.sh index a213ed7..20d602b 100644 --- a/.platform/hooks/predeploy/01_databse_migration.sh +++ b/.platform/hooks/predeploy/01_databse_migration.sh @@ -1,3 +1,2 @@ #!/usr/bin/env bash -node node_modules/prisma/build/index.js migrate resolve --applied 20240117154221_user_profile_image \ No newline at end of file From 68163861bc5d782f97fb4639e7825627dec97f33 Mon Sep 17 00:00:00 2001 From: "Junho Yoon(a.k.a Hoplin)" <45956041+J-Hoplin@users.noreply.github.com> Date: Thu, 18 Jan 2024 02:26:56 +0900 Subject: [PATCH 22/68] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e18b53b..cd080a9 100644 --- a/README.md +++ b/README.md @@ -71,4 +71,3 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors ## License Nest is [MIT licensed](LICENSE) -_ From 890c86146c791c3ecac8822e0be41654ed01d17c Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 08:50:01 +0900 Subject: [PATCH 23/68] Fix: Security Patch - Add guard to static asset API --- src/artifact/artifact.controller.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/artifact/artifact.controller.ts b/src/artifact/artifact.controller.ts index 966e994..a0f9deb 100644 --- a/src/artifact/artifact.controller.ts +++ b/src/artifact/artifact.controller.ts @@ -2,6 +2,7 @@ import { Controller, Post, UploadedFile, + UseGuards, UseInterceptors, } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; @@ -12,8 +13,10 @@ import { } from 'app/config/artifact.config'; import { ArtifactDocs } from './artifact.docs'; import { ArtifactService } from './artifact.service'; +import { LocalGuard } from 'app/auth/guard'; @Controller('artifact') +@UseGuards(LocalGuard) @ArtifactDocs.Controller() export class ArtifactController { constructor(private artifactService: ArtifactService) {} From f61437bc3e0bffa49a31ee84a21c0e211e78d3db Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 08:58:09 +0900 Subject: [PATCH 24/68] Test: Initialize contributer e2e testcode --- .../contributer.controller.e2e-spec.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/judge/contributer/contributer.controller.e2e-spec.ts diff --git a/src/judge/contributer/contributer.controller.e2e-spec.ts b/src/judge/contributer/contributer.controller.e2e-spec.ts new file mode 100644 index 0000000..daa864b --- /dev/null +++ b/src/judge/contributer/contributer.controller.e2e-spec.ts @@ -0,0 +1,27 @@ +import { INestApplication } from '@nestjs/common'; +import { Test, TestingModule } from '@nestjs/testing'; +import { InitializeAdmin } from 'app/admin-init'; +import { AppModule } from 'app/app.module'; +import { PrismaService } from 'app/prisma/prisma.service'; + +describe('/judge/contributer', () => { + let app: INestApplication; + let prisma: PrismaService; + + beforeAll(async () => { + const testModule: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = testModule.createNestApplication(); + prisma = testModule.get(PrismaService); + + await InitializeAdmin(app); + await app.init(); + }); + + afterAll(async () => { + await prisma.deleteAll(); + await app.close(); + }); +}); From 2b7d78e5d3f315a73b22346c6e12f6d4ea6dcea1 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 10:38:09 +0900 Subject: [PATCH 25/68] Test: Test code --- src/artifact/artifact.service.ts | 1 - src/auth/guard/local.guard.ts | 1 + src/auth/strategy/local.strategy.ts | 1 + src/guard/role.guard.ts | 1 + .../contributer.controller.e2e-spec.ts | 113 ++++++++++++++++++ .../decorator/contributer-problem.guard.ts | 6 +- 6 files changed, 121 insertions(+), 2 deletions(-) diff --git a/src/artifact/artifact.service.ts b/src/artifact/artifact.service.ts index a7c2c71..d83ef2a 100644 --- a/src/artifact/artifact.service.ts +++ b/src/artifact/artifact.service.ts @@ -20,7 +20,6 @@ export class ArtifactService { url, }; } catch (err) { - console.log(err); return { success: false, url: '', diff --git a/src/auth/guard/local.guard.ts b/src/auth/guard/local.guard.ts index 9241f5e..7386ac3 100644 --- a/src/auth/guard/local.guard.ts +++ b/src/auth/guard/local.guard.ts @@ -1,3 +1,4 @@ import { AuthGuard } from '@nestjs/passport'; +// JWT Guard returns 401 default export class LocalGuard extends AuthGuard('local') {} diff --git a/src/auth/strategy/local.strategy.ts b/src/auth/strategy/local.strategy.ts index f6c7c72..d5ba4b4 100644 --- a/src/auth/strategy/local.strategy.ts +++ b/src/auth/strategy/local.strategy.ts @@ -20,6 +20,7 @@ export class LocalStrategy extends PassportStrategy(Strategy, 'local') { id, }, }); + if (!user) { throw new ForbiddenException('FORBIDDEN_REQUEST'); } diff --git a/src/guard/role.guard.ts b/src/guard/role.guard.ts index 0c45367..14dd5a6 100644 --- a/src/guard/role.guard.ts +++ b/src/guard/role.guard.ts @@ -14,6 +14,7 @@ import { Request } from 'express'; @Injectable() export class RoleGuard implements CanActivate { + // Throws Forbidden(403) constructor(private reflector: Reflector) {} canActivate(context: ExecutionContext): boolean { const roleList = this.reflector.getAllAndOverride(Role, [ diff --git a/src/judge/contributer/contributer.controller.e2e-spec.ts b/src/judge/contributer/contributer.controller.e2e-spec.ts index daa864b..be3f8af 100644 --- a/src/judge/contributer/contributer.controller.e2e-spec.ts +++ b/src/judge/contributer/contributer.controller.e2e-spec.ts @@ -3,11 +3,22 @@ import { Test, TestingModule } from '@nestjs/testing'; import { InitializeAdmin } from 'app/admin-init'; import { AppModule } from 'app/app.module'; import { PrismaService } from 'app/prisma/prisma.service'; +import { userSignupGen } from 'test/mock-generator'; +import * as request from 'supertest'; +import { BearerTokenHeader } from 'test/test-utils'; describe('/judge/contributer', () => { let app: INestApplication; let prisma: PrismaService; + const user1 = userSignupGen(); + let user1Token: string; + const user2 = userSignupGen(); + let user2Token: string; + let adminToken: string; + let problemId: string; + //endpoints + beforeAll(async () => { const testModule: TestingModule = await Test.createTestingModule({ imports: [AppModule], @@ -24,4 +35,106 @@ describe('/judge/contributer', () => { await prisma.deleteAll(); await app.close(); }); + + // Create User + describe('/signup POST', () => { + it('should create user1', async () => { + const signup = await request(app.getHttpServer()) + .post('/auth/signup') + .send(user1); + expect(signup.statusCode).toBe(200); + expect(signup.body).not.toBeUndefined(); + user1Token = signup.body['accessToken']; + }); + + it('should create user2', async () => { + const signup = await request(app.getHttpServer()) + .post('/auth/signup') + .send(user2); + + expect(signup.statusCode).toBe(200); + expect(signup.body).not.toBeUndefined(); + user2Token = signup.body['accessToken']; + }); + + it('should signup admin', async () => { + const signin = await request(app.getHttpServer()) + .post('/auth/signin') + .send({ + password: process.env.ADMIN_PW, + email: process.env.ADMIN_EMAIL, + }); + + expect(signin.statusCode).toBe(200); + expect(signin.body).not.toBeUndefined(); + adminToken = signin.body['accessToken']; + }); + }); + + describe('/problems GET', () => { + it('should throw if unauthenticated', async () => { + return request(app.getHttpServer()) + .get('/judge/contribute/problems') + .expect(401); + }); + it('should throw if unauthorized', async () => { + return request(app.getHttpServer()) + .get('/judge/contribute/problems') + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + it('should get contributer problem list', () => { + return request(app.getHttpServer()) + .get('/judge/contribute/problems') + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(200); + }); + }); + + describe('/problems POST', () => { + it('should throw if unauthentciated', async () => { + return request(app.getHttpServer()) + .post('/judge/contribute/problems') + .expect(401); + }); + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .post('/judge/contribute/problems') + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + it('should create new problem', async () => { + const response = await request(app.getHttpServer()) + .post('/judge/contribute/problems') + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(201); + problemId = response.body['id']; + }); + }); + + describe('/problems/:pid GET', () => { + it('should throw if unauthenticated', async () => { + return request(app.getHttpServer()) + .get(`/judge/contribute/problems/${problemId}`) + .expect(401); + }); + it('should throw if unauthorized', async () => { + return request(app.getHttpServer()) + .get(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + it('should throw if others tries to access problem', () => { + return request(app.getHttpServer()) + .get(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + it('should read problem', () => { + return request(app.getHttpServer()) + .get(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(200); + }); + }); }); diff --git a/src/judge/contributer/decorator/contributer-problem.guard.ts b/src/judge/contributer/decorator/contributer-problem.guard.ts index 7634d72..bc3c6cb 100644 --- a/src/judge/contributer/decorator/contributer-problem.guard.ts +++ b/src/judge/contributer/decorator/contributer-problem.guard.ts @@ -36,7 +36,11 @@ export class ContributerProblemGuard implements CanActivate { }); return true; } catch (err) { - throw new ForbiddenException('FORBIDDEN_REQUEST'); + console.error(err); + if (err.code === 'P2025') { + throw new ForbiddenException('FORBIDDEN_REQUEST'); + } + throw err; } } } From c03eafddf4c1e3f9540f1d82d755f26a00fd4d6a Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 13:26:32 +0900 Subject: [PATCH 26/68] Test: Contributer E2E Test --- .test.env | 20 +- .../contributer.controller.e2e-spec.ts | 183 +++++++++++++++++- .../decorator/contributer-problem.guard.ts | 1 - 3 files changed, 195 insertions(+), 9 deletions(-) diff --git a/.test.env b/.test.env index 15577db..677357b 100644 --- a/.test.env +++ b/.test.env @@ -4,18 +4,24 @@ # Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. # See the documentation for all the connection string options: https://pris.ly/d/connection-strings -DATABASE_URL="mysql://root:hoplin1234!@localhost:3306/judge_test?schema=public" +DATABASE_URL="mysql://root:hoplin1234!@localhost:3306/judge?schema=public" ADMIN_EMAIL="hoplin.dev@gmail.com" ADMIN_PW = "admin" JWT_SECRET="SECRET" -JUDGE_SERVER_ENDPOINT="a" +JUDGE_SERVER_ENDPOINT="http://ec2-50-16-159-161.compute-1.amazonaws.com:2358" + +ENV="" +PORT="" # AWS -AWS_REGION="" -AWS_ACCESS_ID="" -AWS_ACCESS_SECRET="" -AWS_SQS_QUEUE="" -AWS_S3_BUCKET="" \ No newline at end of file +AWS_REGION="us-east-1" +AWS_ACCESS_ID="AKIARDWTT2CD57PL4YUD" +AWS_ACCESS_SECRET="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" +AWS_SQS_QUEUE="https://sqs.us-east-1.amazonaws.com/076679467143/Online-Judege-API-Worker" +AWS_S3_BUCKET="judge-service-bucket" + +# Sentry +SENTRY_DSN="https://1733c9f81c35175d32c9825deb04421d@o4505820811362304.ingest.sentry.io/4506581946335232" diff --git a/src/judge/contributer/contributer.controller.e2e-spec.ts b/src/judge/contributer/contributer.controller.e2e-spec.ts index be3f8af..fb9bb6c 100644 --- a/src/judge/contributer/contributer.controller.e2e-spec.ts +++ b/src/judge/contributer/contributer.controller.e2e-spec.ts @@ -15,8 +15,10 @@ describe('/judge/contributer', () => { let user1Token: string; const user2 = userSignupGen(); let user2Token: string; + let user2Id: string; let adminToken: string; let problemId: string; + let exampleId: number; //endpoints beforeAll(async () => { @@ -57,6 +59,14 @@ describe('/judge/contributer', () => { user2Token = signup.body['accessToken']; }); + it('should get user2 id', async () => { + const getProfile = await request(app.getHttpServer()) + .get('/user/profile') + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(200); + user2Id = getProfile.body['id']; + }); + it('should signup admin', async () => { const signin = await request(app.getHttpServer()) .post('/auth/signin') @@ -69,8 +79,21 @@ describe('/judge/contributer', () => { expect(signin.body).not.toBeUndefined(); adminToken = signin.body['accessToken']; }); + + it('should change user2 as contributer', () => { + return request(app.getHttpServer()) + .patch('/user/admin/role') + .set('Authorization', BearerTokenHeader(adminToken)) + .send({ + role: 'Contributer', + targetId: user2Id, + }) + .expect(200); + }); }); + // Test + describe('/problems GET', () => { it('should throw if unauthenticated', async () => { return request(app.getHttpServer()) @@ -124,7 +147,7 @@ describe('/judge/contributer', () => { .set('Authorization', BearerTokenHeader(user1Token)) .expect(403); }); - it('should throw if others tries to access problem', () => { + it('should throw if others contributer tries to access problem', () => { return request(app.getHttpServer()) .get(`/judge/contribute/problems/${problemId}`) .set('Authorization', BearerTokenHeader(user2Token)) @@ -137,4 +160,162 @@ describe('/judge/contributer', () => { .expect(200); }); }); + + describe('/problems/:pid PATCH', () => { + it('should throw if unauthenticated', async () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}`) + .expect(401); + }); + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + it('should throw if other contributer tries to modify problem', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + it('should patch problem', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .send({ + title: 'string', + problem: 'string', + input: 'string', + output: 'string', + timeLimit: 0, + memoryLimit: 0, + tags: ['sort', 'bfs', 'math'], + isOpen: true, + }) + .expect(200); + }); + }); + + describe('/problmes/:pid/examples POST', () => { + it('should throw if unauthenticated', () => { + return request(app.getHttpServer()) + .post(`/judge/contribute/problems/${problemId}/examples`) + .expect(401); + }); + + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .post(`/judge/contribute/problems/${problemId}/examples`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + + it('should throw if other contributer tries to create example', () => { + return request(app.getHttpServer()) + .post(`/judge/contribute/problems/${problemId}/examples`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + + it('should create example for question', async () => { + const response = await request(app.getHttpServer()) + .post(`/judge/contribute/problems/${problemId}/examples`) + .set(`Authorization`, BearerTokenHeader(adminToken)) + .send({ + input: 'string', + output: 'string', + isPublic: true, + }) + .expect(201); + exampleId = response.body['id']; + }); + }); + + describe('/problems/:pid/examples/:eid PATCH', () => { + it('should throw if unauthenticated', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .expect(401); + }); + + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + + it('should throw if other contributer tries to modify exmaple', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + + it('should modify example', () => { + return request(app.getHttpServer()) + .patch(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(200); + }); + }); + + describe('/problem/:pid/examples/:eid DELETE', () => { + it('should throw if unauthenticated', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .expect(401); + }); + + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + + it('should throw if other contributer tries to modify', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + + it('should throw if other contributer tries to modify', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}/examples/${exampleId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(200); + }); + }); + + describe('/problem/:pid DELETE', () => { + it('should throw if unauthenticated', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}`) + .expect(401); + }); + + it('should throw if unauthorized', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user1Token)) + .expect(403); + }); + + it('should throw if other contributer tries to modify', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(user2Token)) + .expect(403); + }); + + it('should throw if other contributer tries to modify', () => { + return request(app.getHttpServer()) + .delete(`/judge/contribute/problems/${problemId}`) + .set('Authorization', BearerTokenHeader(adminToken)) + .expect(200); + }); + }); }); diff --git a/src/judge/contributer/decorator/contributer-problem.guard.ts b/src/judge/contributer/decorator/contributer-problem.guard.ts index bc3c6cb..530f059 100644 --- a/src/judge/contributer/decorator/contributer-problem.guard.ts +++ b/src/judge/contributer/decorator/contributer-problem.guard.ts @@ -36,7 +36,6 @@ export class ContributerProblemGuard implements CanActivate { }); return true; } catch (err) { - console.error(err); if (err.code === 'P2025') { throw new ForbiddenException('FORBIDDEN_REQUEST'); } From b07b72ea36fe07da48c3627dab8239fd22e4699f Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 13:35:46 +0900 Subject: [PATCH 27/68] Test: Remove unused modules from coverage test --- test/jest-e2e.json | 10 +++++++++- test/jest-unit.json | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/test/jest-e2e.json b/test/jest-e2e.json index 5ca9005..9ea43f0 100644 --- a/test/jest-e2e.json +++ b/test/jest-e2e.json @@ -7,7 +7,15 @@ "^.+\\.(t|j)s$": "ts-jest" }, "coverageDirectory": "../e2e-coverage", - "collectCoverageFrom": ["**/*\\.controller\\.(t|j)s", "**/*\\.dto\\.(t|j)s"], + "collectCoverageFrom": [ + "**/*\\.controller\\.(t|j)s", + "**/*\\.dto\\.(t|j)s", + "**/*\\.service\\.(t|j)s", + "!**/worker/**", + "!**/system-logger/**", + "!**/prisma/**", + "!**/artifact/**" + ], "moduleNameMapper": { "app/(.*)": "/../src/$1", "test/(.*)": "/../test/$1", diff --git a/test/jest-unit.json b/test/jest-unit.json index 25ce578..7680eef 100644 --- a/test/jest-unit.json +++ b/test/jest-unit.json @@ -7,7 +7,13 @@ "^.+\\.(t|j)s$": "ts-jest" }, "coverageDirectory": "../unit-coverage", - "collectCoverageFrom": ["**/*\\.service\\.(t|j)s"], + "collectCoverageFrom": [ + "**/*\\.service\\.(t|j)s", + "!**/worker/**", + "!**/system-logger/**", + "!**/prisma/**", + "!**/artifact/**" + ], "moduleNameMapper": { "app/(.*)": "/../src/$1", "test/(.*)": "/../test/$1", From e2a17a33b044c3381da7afe8aeda002304d11923 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 20 Jan 2024 14:49:42 +0900 Subject: [PATCH 28/68] Test: Apply mocked provider to test code --- .test.env | 14 ++--- .../contributer/contributer.service.spec.ts | 8 ++- src/judge/decorator/problem.guard.ts | 1 - src/judge/judge.controller.e2e-spec.ts | 7 ++- src/judge/judge.service.spec.ts | 8 ++- src/judge/judge.service.ts | 1 - src/user/user.module.ts | 1 + src/user/user.service.spec.ts | 8 ++- test/mock.provider.ts | 53 +++++++++++++++++++ 9 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 test/mock.provider.ts diff --git a/.test.env b/.test.env index 677357b..58883a1 100644 --- a/.test.env +++ b/.test.env @@ -11,17 +11,17 @@ ADMIN_PW = "admin" JWT_SECRET="SECRET" -JUDGE_SERVER_ENDPOINT="http://ec2-50-16-159-161.compute-1.amazonaws.com:2358" +JUDGE_SERVER_ENDPOINT="test" ENV="" PORT="" # AWS -AWS_REGION="us-east-1" -AWS_ACCESS_ID="AKIARDWTT2CD57PL4YUD" -AWS_ACCESS_SECRET="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" -AWS_SQS_QUEUE="https://sqs.us-east-1.amazonaws.com/076679467143/Online-Judege-API-Worker" -AWS_S3_BUCKET="judge-service-bucket" +AWS_REGION="test" +AWS_ACCESS_ID="test" +AWS_ACCESS_SECRET="test" +AWS_SQS_QUEUE="test" +AWS_S3_BUCKET="test" # Sentry -SENTRY_DSN="https://1733c9f81c35175d32c9825deb04421d@o4505820811362304.ingest.sentry.io/4506581946335232" +SENTRY_DSN="test" diff --git a/src/judge/contributer/contributer.service.spec.ts b/src/judge/contributer/contributer.service.spec.ts index 51bbc2a..1e9bf6e 100644 --- a/src/judge/contributer/contributer.service.spec.ts +++ b/src/judge/contributer/contributer.service.spec.ts @@ -5,7 +5,8 @@ import { PrismaService } from 'app/prisma/prisma.service'; import { ProblemDomain, ProblemExampleDomain, UserDomain } from 'domains'; import { userSignupGen } from 'test/mock-generator'; import { ForbiddenException } from '@nestjs/common'; -import { AwsSqsModule } from 'aws-sqs/aws-sqs'; +import { AwsSqsModule, AwsSqsService } from 'aws-sqs/aws-sqs'; +import { AwsSQSLibraryMockProvider } from 'test/mock.provider'; describe('ContributerService', () => { let service: ContributerService; @@ -26,7 +27,10 @@ describe('ContributerService', () => { const module: TestingModule = await Test.createTestingModule({ imports: [PrismaModule, AwsSqsModule], providers: [ContributerService], - }).compile(); + }) + .overrideProvider(AwsSqsService) + .useValue(AwsSQSLibraryMockProvider.useValue) + .compile(); // Initialize module for prisma service module.init(); diff --git a/src/judge/decorator/problem.guard.ts b/src/judge/decorator/problem.guard.ts index ebaeec3..7ac78a1 100644 --- a/src/judge/decorator/problem.guard.ts +++ b/src/judge/decorator/problem.guard.ts @@ -22,7 +22,6 @@ export class ProblemGuard implements CanActivate { async canActivate(context: ExecutionContext): Promise { const request = context.switchToHttp().getRequest(); const problemId = request.params['pid']; - // Check if problem in DB try { await this.prisma.problem.findUniqueOrThrow({ diff --git a/src/judge/judge.controller.e2e-spec.ts b/src/judge/judge.controller.e2e-spec.ts index 3168d52..926ca2e 100644 --- a/src/judge/judge.controller.e2e-spec.ts +++ b/src/judge/judge.controller.e2e-spec.ts @@ -3,8 +3,10 @@ import { Test, TestingModule } from '@nestjs/testing'; import { InitializeAdmin } from 'app/admin-init'; import { AppModule } from 'app/app.module'; import { PrismaService } from 'app/prisma/prisma.service'; +import { Judge0Service } from 'judge/judge0'; import * as request from 'supertest'; import { userSignupGen } from 'test/mock-generator'; +import { JudgeLibraryMockProvider } from 'test/mock.provider'; import { BearerTokenHeader } from 'test/test-utils'; describe('/judge Judge Controller', () => { @@ -27,7 +29,10 @@ describe('/judge Judge Controller', () => { beforeAll(async () => { const testModule: TestingModule = await Test.createTestingModule({ imports: [AppModule], - }).compile(); + }) + .overrideProvider(Judge0Service) + .useValue(JudgeLibraryMockProvider.useValue) + .compile(); app = testModule.createNestApplication(); prisma = testModule.get(PrismaService); diff --git a/src/judge/judge.service.spec.ts b/src/judge/judge.service.spec.ts index 9e1a6b0..f44c322 100644 --- a/src/judge/judge.service.spec.ts +++ b/src/judge/judge.service.spec.ts @@ -3,7 +3,8 @@ import { JudgeService } from './judge.service'; import { userSignupGen } from 'test/mock-generator'; import { Test, TestingModule } from '@nestjs/testing'; import { PrismaModule } from 'app/prisma/prisma.module'; -import { Judge0Module } from 'judge/judge0'; +import { Judge0Module, Judge0Service } from 'judge/judge0'; +import { JudgeLibraryMockProvider } from 'test/mock.provider'; describe('JudgeService', () => { let service: JudgeService; @@ -16,7 +17,10 @@ describe('JudgeService', () => { const module: TestingModule = await Test.createTestingModule({ imports: [PrismaModule, Judge0Module], providers: [JudgeService], - }).compile(); + }) + .overrideProvider(Judge0Service) + .useValue(JudgeLibraryMockProvider.useValue) + .compile(); service = module.get(JudgeService); prisma = module.get(PrismaService); diff --git a/src/judge/judge.service.ts b/src/judge/judge.service.ts index 739721e..3d48bbe 100644 --- a/src/judge/judge.service.ts +++ b/src/judge/judge.service.ts @@ -149,7 +149,6 @@ export class JudgeService { ); }), ); - return results.map((result) => { return { isCorrect: result.isCorrect, diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 673b6ee..122d53c 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -7,5 +7,6 @@ import { AwsS3Module } from 's3/aws-s3'; imports: [AwsS3Module], controllers: [UserController], providers: [UserService], + exports: [UserService], }) export class UserModule {} diff --git a/src/user/user.service.spec.ts b/src/user/user.service.spec.ts index 8039ec1..1e2ddcf 100644 --- a/src/user/user.service.spec.ts +++ b/src/user/user.service.spec.ts @@ -7,7 +7,8 @@ import { BadRequestException, UnauthorizedException } from '@nestjs/common'; import { CredentialType } from './dto'; import * as bcrypt from 'bcryptjs'; import { UserDomain } from 'domains'; -import { AwsS3Module } from 's3/aws-s3'; +import { AwsS3Module, AwsS3Service } from 's3/aws-s3'; +import { AwsS3LibraryMockProvider } from 'test/mock.provider'; describe('UserService', () => { let service: UserService; @@ -27,7 +28,10 @@ describe('UserService', () => { const module: TestingModule = await Test.createTestingModule({ imports: [PrismaModule, AwsS3Module], providers: [UserService], - }).compile(); + }) + .overrideProvider(AwsS3Service) + .useValue(AwsS3LibraryMockProvider.useValue) + .compile(); service = module.get(UserService); prisma = module.get(PrismaService); diff --git a/test/mock.provider.ts b/test/mock.provider.ts new file mode 100644 index 0000000..accb85e --- /dev/null +++ b/test/mock.provider.ts @@ -0,0 +1,53 @@ +import { ValueProvider } from '@nestjs/common'; +import { AwsSqsService } from 'aws-sqs/aws-sqs'; +import { Judge0Service } from 'judge/judge0'; +import { AwsS3Service } from 's3/aws-s3'; + +/** + * Mock Object of Judge0 Service + */ +export const JudgeLibraryMockProvider: ValueProvider = { + provide: Judge0Service, + useValue: { + getLanguages: () => [], + submit: (...args) => { + return { + isCorrect: true, + description: 'CORRECT', + languageId: 71, + memory: 3260, + time: 0.015, + statusId: 3, + output: { + expect: 'hello', + input: '', + stdout: 'hello\n', + message: null, + }, + }; + }, + }, +}; + +/** + * Mock Object of AWS S3 + */ +export const AwsS3LibraryMockProvider: ValueProvider = { + provide: AwsS3Service, + useValue: { + uploadFile: jest.fn((...args) => 'some-url'), + getStaticURL: jest.fn((...args) => 'some-url'), + getSignedURL: jest.fn((...args) => 'some-url'), + removeObject: jest.fn((...args) => 'some-url'), + }, +}; + +/** + * Mock Object of AWS SQS + */ +export const AwsSQSLibraryMockProvider: ValueProvider = { + provide: AwsSqsService, + useValue: { + sendTask: jest.fn((...args) => true), + }, +}; From b668a8262931561f94fa5f54fe94c41b7209e6d5 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 21 Jan 2024 15:29:37 +0900 Subject: [PATCH 29/68] Test: Unit test init --- src/judge/judge.service.spec.ts | 46 +++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/judge/judge.service.spec.ts b/src/judge/judge.service.spec.ts index f44c322..ebc3bd1 100644 --- a/src/judge/judge.service.spec.ts +++ b/src/judge/judge.service.spec.ts @@ -5,13 +5,23 @@ import { Test, TestingModule } from '@nestjs/testing'; import { PrismaModule } from 'app/prisma/prisma.module'; import { Judge0Module, Judge0Service } from 'judge/judge0'; import { JudgeLibraryMockProvider } from 'test/mock.provider'; +import { ProblemDomain, UserDomain } from 'domains'; describe('JudgeService', () => { let service: JudgeService; let prisma: PrismaService; - const user1 = userSignupGen(); - const user2 = userSignupGen(); + let user1: UserDomain; + const user1Signup = userSignupGen(true); + + let user2: UserDomain; + const user2Signup = userSignupGen(true); + + // Opened Problem + let problem1: ProblemDomain; + + // Closed Problem + let problem2: ProblemDomain; beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ @@ -24,6 +34,38 @@ describe('JudgeService', () => { service = module.get(JudgeService); prisma = module.get(PrismaService); + + await module.init(); + + user1 = await prisma.user.create({ + data: { + ...user1Signup, + }, + }); + + user2 = await prisma.user.create({ + data: { + ...user2Signup, + }, + }); + + problem1 = await prisma.problem.create({ + data: { + title: 'Have Example', + contributerId: user1.id, + tags: [], + isOpen: true, + }, + }); + + problem2 = await prisma.problem.create({ + data: { + title: 'No Problem', + contributerId: user1.id, + tags: [], + isOpen: true, + }, + }); }); afterAll(async () => { await prisma.deleteAll(); From ebbd873dfde6c115434437c14ede2a8c1fcc801a Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 21 Jan 2024 21:31:54 +0900 Subject: [PATCH 30/68] Test: Unit test of judge module --- .test.env | 2 +- package.json | 1 + src/decorator/pagination.decorator.ts | 2 +- src/judge/judge.service.spec.ts | 563 +++++++++++++++++++++++++- src/judge/judge.service.ts | 67 +-- src/prisma/prisma.service.ts | 6 +- src/user/user.service.spec.ts | 3 +- test/jest-e2e.json | 1 + test/jest-extended.ts | 3 + test/jest-unit.json | 1 + test/mock.provider.ts | 11 +- tsconfig.json | 42 +- yarn.lock | 12 +- 13 files changed, 641 insertions(+), 73 deletions(-) create mode 100644 test/jest-extended.ts diff --git a/.test.env b/.test.env index 58883a1..b70fe58 100644 --- a/.test.env +++ b/.test.env @@ -4,7 +4,7 @@ # Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. # See the documentation for all the connection string options: https://pris.ly/d/connection-strings -DATABASE_URL="mysql://root:hoplin1234!@localhost:3306/judge?schema=public" +DATABASE_URL="mysql://root:hoplin1234!@localhost:3306/judge_test?schema=public" ADMIN_EMAIL="hoplin.dev@gmail.com" ADMIN_PW = "admin" diff --git a/package.json b/package.json index 95e8278..79ea1cf 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "eslint-config-prettier": "^8.8.0", "eslint-plugin-prettier": "^4.2.1", "jest": "^29.5.0", + "jest-extended": "^4.0.2", "prettier": "^2.8.8", "source-map-support": "^0.5.21", "supertest": "^6.3.3", diff --git a/src/decorator/pagination.decorator.ts b/src/decorator/pagination.decorator.ts index fc9ee44..80b2ad4 100644 --- a/src/decorator/pagination.decorator.ts +++ b/src/decorator/pagination.decorator.ts @@ -2,7 +2,7 @@ import { ExecutionContext, createParamDecorator } from '@nestjs/common'; import { ApiQuery } from '@nestjs/swagger'; import { Request } from 'express'; -const defaultPage = 1; +const defaultPage = 0; const defaultOffset = 10; export type PaginateObject = { diff --git a/src/judge/judge.service.spec.ts b/src/judge/judge.service.spec.ts index ebc3bd1..238d7e1 100644 --- a/src/judge/judge.service.spec.ts +++ b/src/judge/judge.service.spec.ts @@ -5,7 +5,26 @@ import { Test, TestingModule } from '@nestjs/testing'; import { PrismaModule } from 'app/prisma/prisma.module'; import { Judge0Module, Judge0Service } from 'judge/judge0'; import { JudgeLibraryMockProvider } from 'test/mock.provider'; -import { ProblemDomain, UserDomain } from 'domains'; +import { + ProblemDomain, + ProblemIssueCommentDomain, + ProblemIssueDomain, + SubmissionDomain, + UserDomain, +} from 'domains'; +import { JudgeFilterObject } from './decorator/judge-filter.decorator'; +import { PaginateObject } from 'app/decorator'; +import { + BadRequestException, + ForbiddenException, + NotFoundException, +} from '@nestjs/common'; +import { + CreateProblemIssueCommentDto, + CreateProblemIssueDto, + SubmitProblemDto, +} from './dto'; +import { SubmissionFilterObject } from './decorator/submission-filter.decorator'; describe('JudgeService', () => { let service: JudgeService; @@ -23,6 +42,12 @@ describe('JudgeService', () => { // Closed Problem let problem2: ProblemDomain; + let openSubmission: SubmissionDomain; + let closedSubmission: SubmissionDomain; + + let issue: ProblemIssueDomain; + let comment: ProblemIssueCommentDomain; + beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [PrismaModule, Judge0Module], @@ -58,6 +83,14 @@ describe('JudgeService', () => { }, }); + await prisma.problemExample.create({ + data: { + problemId: problem1.id, + input: 'input', + output: 'output', + }, + }); + problem2 = await prisma.problem.create({ data: { title: 'No Problem', @@ -67,13 +100,535 @@ describe('JudgeService', () => { }, }); }); + afterAll(async () => { await prisma.deleteAll(); }); - describe('Test', () => { - it('Test', () => { - expect(true); + // Class + describe('JudgeService', () => { + // Method + describe('getLanguages()', () => { + it('should return supported language', async () => { + //given + //when + const language = await service.getLanguages(); + //then + expect(language).toBeArray(); + }); + }); + + describe('listProblem()', () => { + it('should list problem', async () => { + //given + const filter: JudgeFilterObject = { + Orderby: {}, + Where: { + title: { + contains: 'Have', + }, + }, + }; + const paginate: PaginateObject = { + skip: 0, + take: 10, + }; + //when + const problems = await service.listProblem(filter, paginate); + // Then + expect(problems).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: problem1.id, + }), + ]), + ); + }); + }); + + describe('readProblem()', () => { + it('should read problem', async () => { + // given + const id = problem1['id']; + // when + const problem = await service.readProblem(id); + // then + expect(problem.id).toBe(id); + }); + }); + + describe('runProblem()', () => { + it('should run existing problem', async () => { + //given + const id = problem1['id']; + //when + const result = await service.runProblem(id, { + code: 'code', + languageId: 71, + }); + //then + expect(result).not.toBeUndefined(); + }); + + it('should throw if example not exist', async () => { + //given + const id = problem2['id']; + //when + try { + await service.runProblem(id, { + code: 'code', + languageId: 71, + }); + } catch (err) { + //then + expect(err).toBeInstanceOf(BadRequestException); + } + }); + }); + + describe('submitProblem()', () => { + it('should submit problem. Opened Submission', async () => { + // given + const userId = user1['id']; + const problemId = problem1['id']; + const dto: SubmitProblemDto = { + code: '', + isPublic: true, + languageId: 0, + language: '', + }; + // when + const result = await service.submitProblem(userId, problemId, dto); + // then + expect(result).not.toBeUndefined(); + openSubmission = result; + }); + + it('should submit problem. Closed Submission', async () => { + const userId = user1['id']; + const problemId = problem1['id']; + const dto: SubmitProblemDto = { + code: '', + isPublic: false, + languageId: 0, + language: '', + }; + // when + const result = await service.submitProblem(userId, problemId, dto); + // then + expect(result).not.toBeUndefined(); + closedSubmission = result; + }); + + it('should throw if example not exist', async () => { + //given + const userId = user2['id']; + const problemId = problem2['id']; + const dto: SubmitProblemDto = { + code: '', + isPublic: false, + languageId: 0, + language: '', + }; + //when + try { + await service.submitProblem(userId, problemId, dto); + } catch (err) { + // then + expect(err).toBeInstanceOf(BadRequestException); + } + }); + }); + + describe('listUserSubmissions()', () => { + it('should list user submissions', async () => { + //given + const userId = user1['id']; + const problemId = problem1['id']; + + //when + const submissions = await service.listUserSubmissions( + userId, + problemId, + {} as SubmissionFilterObject, + {} as PaginateObject, + ); + + //then + expect(submissions.data).toBeArray(); + }); + }); + + describe('listPublicSubmission()', () => { + it('should return public submission', async () => { + //given + const problemId = problem1['id']; + //when + const submissions = await service.listPublicSubmission( + problemId, + {} as SubmissionFilterObject, + {} as PaginateObject, + ); + + //then + expect(submissions).toHaveProperty('aggregate'); + expect(submissions).toHaveProperty('data'); + expect(submissions.data).toEqual( + expect.arrayContaining([ + expect.not.objectContaining({ + id: closedSubmission.id, + }), + ]), + ); + }); + }); + + describe('readPublicSubmission()', () => { + it('should return public submission', async () => { + //given + const problemId = problem1['id']; + const openedSubmissionId = openSubmission['id']; + //when + const submission = await service.readPublicSubmission( + problemId, + openedSubmissionId, + ); + //then + expect(submission).not.toBeUndefined(); + }); + + it('should throw if submission is not public', async () => { + //given + const problemId = problem1['id']; + const closedSubmissionId = closedSubmission['id']; + //when + try { + await service.readPublicSubmission(problemId, closedSubmissionId); + } catch (err) { + //then + expect(err).toBeInstanceOf(NotFoundException); + } + }); + }); + + describe('readUserSubmission()', () => { + it('should read user submission', async () => { + //given + const userId = user1['id']; + const problemId = problem1['id']; + const submissionId = openSubmission['id']; + //when + const submission = await service.readUserSubmission( + userId, + problemId, + submissionId, + ); + //then + expect(submission).not.toBeUndefined(); + }); + + it("should throw if submission is not user's", async () => { + //given + const userId = user2['id']; + const problemId = problem1['id']; + const submissionId = openSubmission['id']; + //when + try { + await service.readUserSubmission(userId, problemId, submissionId); + } catch (err) { + //then + expect(err).toBeInstanceOf(NotFoundException); + } + }); + }); + + describe('updateUserSubmission()', () => { + it('should update submission', async () => { + const userId = user1['id']; + const problemId = problem1['id']; + const submissionId = openSubmission['id']; + + const submission = await service.updateUserSubmission( + userId, + problemId, + submissionId, + { + isPublic: true, + }, + ); + + expect(submission).not.toBeUndefined(); + }); + + it('should throw if submission not exist', async () => { + const userId = user2['id']; + const problemId = problem1['id']; + const submissionId = 999999; + + try { + await service.updateUserSubmission(userId, problemId, submissionId, { + isPublic: true, + }); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + + it('should throw if other tries to modify submission', async () => { + const userId = user2['id']; + const problemId = problem1['id']; + const submissionId = openSubmission['id']; + + try { + await service.updateUserSubmission(userId, problemId, submissionId, { + isPublic: true, + }); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + }); + + describe('createProblemIssue()', () => { + it('should create problem issue', async () => { + const userId = user1['id']; + const problemId = problem1['id']; + + issue = await service.createProblemIssue( + { + title: 'Issue', + content: 'Issue Content', + }, + userId, + problemId, + ); + + expect(issue).not.toBeUndefined(); + }); + }); + + describe('listProblemIssue()', () => { + it('should list issue', async () => { + const problemId = problem1['id']; + + const issueList = await service.listProblemIssue( + problemId, + {} as PaginateObject, + ); + + expect(issueList).toBeArray(); + }); + }); + + describe('readProblemIssue()', () => { + it('should read problem issue', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + + const readIssue = await service.readProblemIssue(problemId, issueId); + + expect(readIssue).not.toBeUndefined(); + }); + + it('should throw if issue not exist', async () => { + const problemId = problem1['id']; + + try { + await service.readProblemIssue(problemId, 99999999); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + }); + + describe('updateProblemIssue()', () => { + it('should update problem issue', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user1['id']; + const dto: CreateProblemIssueDto = { + title: 'Updated Title', + content: 'Updated Content', + }; + + const updatedIssue = await service.updateProblemIssue( + userId, + problemId, + issueId, + dto, + ); + + expect(updatedIssue).not.toBeUndefined(); + }); + + it('should throw if other tries to modify issue', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user2['id']; + const dto: CreateProblemIssueDto = { + title: 'Updated Title', + content: 'Updated Content', + }; + + try { + await service.updateProblemIssue(userId, problemId, issueId, dto); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + }); + + describe('createProblemIssueComment()', () => { + it('should create issue comment', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const user1Id = user1['id']; + const dto: CreateProblemIssueCommentDto = { + content: 'content', + }; + + comment = await service.createProblemIssueComment( + user1Id, + problemId, + issueId, + dto, + ); + + expect(comment).not.toBeUndefined(); + }); + + it('should throw if issue not found', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const user1Id = user1['id']; + const dto: CreateProblemIssueCommentDto = { + content: 'content', + }; + + try { + await service.createProblemIssueComment( + user1Id, + problemId, + issueId, + dto, + ); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + }); + + describe('updateProblemIssueComment()', () => { + it('should update comment', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const user1Id = user1['id']; + const dto: CreateProblemIssueCommentDto = { + content: 'content', + }; + + comment = await service.updateProblemIssueComment( + user1Id, + problemId, + issueId, + comment['id'], + dto, + ); + + expect(comment).not.toBeUndefined(); + }); + + it("should throw if comment's information is invalid", async () => { + /** + * Invalid information includes + * + * - comment id + * - user id + * - issue id + * - problem id + */ + + const problemId = problem1['id']; + const issueId = 99999; + const user1Id = '99999'; + const dto: CreateProblemIssueCommentDto = { + content: 'content', + }; + + try { + await service.updateProblemIssueComment( + user1Id, + problemId, + issueId, + comment['id'], + dto, + ); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + }); + + describe('deleteProblemIssueComment()', () => { + it("should throw if comment is not user's", async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user2['id']; + const commentId = comment['id']; + + try { + await service.deleteProblemIssueComment( + userId, + problemId, + issueId, + commentId, + ); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + + it('should delete comment', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user1['id']; + const commentId = comment['id']; + + await service.deleteProblemIssueComment( + userId, + problemId, + issueId, + commentId, + ); + }); + }); + + describe('deleteProblemIssue()', () => { + it('should throw if other tries to delete', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user2['id']; + + try { + await service.deleteProblemIssue(userId, problemId, issueId); + } catch (err) { + expect(err).toBeInstanceOf(ForbiddenException); + } + }); + + it('should delete issue', async () => { + const problemId = problem1['id']; + const issueId = issue['id']; + const userId = user1['id']; + + const result = await service.deleteProblemIssue( + userId, + problemId, + issueId, + ); + + expect(result).not.toBeUndefined(); + }); }); }); }); diff --git a/src/judge/judge.service.ts b/src/judge/judge.service.ts index 3d48bbe..6e46750 100644 --- a/src/judge/judge.service.ts +++ b/src/judge/judge.service.ts @@ -332,7 +332,7 @@ export class JudgeService { }, }); return { - aggreate: aggregationMap, + aggregate: aggregationMap, data: submissions, }; } @@ -432,27 +432,34 @@ export class JudgeService { } async readProblemIssue(pid: number, iid: number) { - return await this.prisma.problemIssue.findUniqueOrThrow({ - where: { - id: iid, - problemId: pid, - }, - include: { - issuer: { - select: { - id: true, - nickname: true, - }, + try { + return await this.prisma.problemIssue.findUniqueOrThrow({ + where: { + id: iid, + problemId: pid, }, - problem: { - select: { - id: true, - title: true, + include: { + issuer: { + select: { + id: true, + nickname: true, + }, }, + problem: { + select: { + id: true, + title: true, + }, + }, + comments: true, }, - comments: true, - }, - }); + }); + } catch (err) { + if (err.code === 'P2025') { + throw new ForbiddenException('ISSUE_NOT_FOUND'); + } + throw err; + } } async createProblemIssue( @@ -527,21 +534,23 @@ export class JudgeService { id: iid, }, }); + // Create new issue comment + return await this.prisma.problemIssueComment.create({ + data: { + userId: uid, + issueId: iid, + problemId: pid, + content: dto.content, + }, + }); } catch (err) { - if (err.code === 'P2025') { + // P2003 + // Unique Constraint Error + if (err.code === 'P2025' || err.code === 'P2003') { throw new ForbiddenException('ISSUE_NOT_FOUND'); } throw err; } - // Create new issue comment - return await this.prisma.problemIssueComment.create({ - data: { - userId: uid, - issueId: iid, - problemId: pid, - content: dto.content, - }, - }); } async updateProblemIssueComment( diff --git a/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts index dd00e1c..50b85a7 100644 --- a/src/prisma/prisma.service.ts +++ b/src/prisma/prisma.service.ts @@ -79,13 +79,13 @@ export class PrismaService } async deleteAll() { - // Consider order of delete by relation await this.$transaction([ + this.submission.deleteMany(), + this.problemIssueComment.deleteMany(), + this.problemIssue.deleteMany(), this.problemExample.deleteMany(), this.problem.deleteMany(), this.user.deleteMany(), - this.problemIssue.deleteMany(), - this.problemIssueComment.deleteMany(), ]); } } diff --git a/src/user/user.service.spec.ts b/src/user/user.service.spec.ts index 1e2ddcf..cc23567 100644 --- a/src/user/user.service.spec.ts +++ b/src/user/user.service.spec.ts @@ -9,6 +9,7 @@ import * as bcrypt from 'bcryptjs'; import { UserDomain } from 'domains'; import { AwsS3Module, AwsS3Service } from 's3/aws-s3'; import { AwsS3LibraryMockProvider } from 'test/mock.provider'; +import { v4 } from 'uuid'; describe('UserService', () => { let service: UserService; @@ -119,7 +120,7 @@ describe('UserService', () => { }, { blog: 'jhoplin7259.tistory.com', - nickname: 'nickname', + nickname: v4().split('-')[0], github: 'J-hoplin1', message: 'message', password: user3Singup.password, diff --git a/test/jest-e2e.json b/test/jest-e2e.json index 9ea43f0..84244f1 100644 --- a/test/jest-e2e.json +++ b/test/jest-e2e.json @@ -6,6 +6,7 @@ "transform": { "^.+\\.(t|j)s$": "ts-jest" }, + "setupFilesAfterEnv": ["/../test/jest-extended.ts"], "coverageDirectory": "../e2e-coverage", "collectCoverageFrom": [ "**/*\\.controller\\.(t|j)s", diff --git a/test/jest-extended.ts b/test/jest-extended.ts new file mode 100644 index 0000000..9ccbeec --- /dev/null +++ b/test/jest-extended.ts @@ -0,0 +1,3 @@ +// extend jest matcher +import * as matchers from 'jest-extended'; +expect.extend(matchers); diff --git a/test/jest-unit.json b/test/jest-unit.json index 7680eef..04dc3c1 100644 --- a/test/jest-unit.json +++ b/test/jest-unit.json @@ -6,6 +6,7 @@ "transform": { "^.+\\.(t|j)s$": "ts-jest" }, + "setupFilesAfterEnv": ["/../test/jest-extended.ts"], "coverageDirectory": "../unit-coverage", "collectCoverageFrom": [ "**/*\\.service\\.(t|j)s", diff --git a/test/mock.provider.ts b/test/mock.provider.ts index accb85e..a2485b2 100644 --- a/test/mock.provider.ts +++ b/test/mock.provider.ts @@ -9,7 +9,16 @@ import { AwsS3Service } from 's3/aws-s3'; export const JudgeLibraryMockProvider: ValueProvider = { provide: Judge0Service, useValue: { - getLanguages: () => [], + getLanguages: () => [ + { + id: 0, + name: 'string', + }, + { + id: 0, + name: 'string', + }, + ], submit: (...args) => { return { isCorrect: true, diff --git a/tsconfig.json b/tsconfig.json index 70f21f9..73bce71 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,36 +18,16 @@ "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false, "paths": { - "app": [ - "src" - ], - "app/*": [ - "src/*" - ], - "domains": [ - "domain" - ], - "domains/*": [ - "domain/*" - ], - "s3/aws-s3": [ - "libs/aws-s3/src" - ], - "s3/aws-s3/*": [ - "libs/aws-s3/src/*" - ], - "judge/judge0": [ - "libs/judge0/src" - ], - "judge/judge0/*": [ - "libs/judge0/src/*" - ], - "aws-sqs/aws-sqs": [ - "libs/aws-sqs/src" - ], - "aws-sqs/aws-sqs/*": [ - "libs/aws-sqs/src/*" - ] + "app": ["src"], + "app/*": ["src/*"], + "domains": ["domain"], + "domains/*": ["domain/*"], + "s3/aws-s3": ["libs/aws-s3/src"], + "s3/aws-s3/*": ["libs/aws-s3/src/*"], + "judge/judge0": ["libs/judge0/src"], + "judge/judge0/*": ["libs/judge0/src/*"], + "aws-sqs/aws-sqs": ["libs/aws-sqs/src"], + "aws-sqs/aws-sqs/*": ["libs/aws-sqs/src/*"] } } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index ee53fcc..c7c6195 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5005,7 +5005,7 @@ jest-config@^29.7.0: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.7.0: +jest-diff@^29.0.0, jest-diff@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== @@ -5045,7 +5045,15 @@ jest-environment-node@^29.7.0: jest-mock "^29.7.0" jest-util "^29.7.0" -jest-get-type@^29.6.3: +jest-extended@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/jest-extended/-/jest-extended-4.0.2.tgz#d23b52e687cedf66694e6b2d77f65e211e99e021" + integrity sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog== + dependencies: + jest-diff "^29.0.0" + jest-get-type "^29.0.0" + +jest-get-type@^29.0.0, jest-get-type@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== From 999f9155d3d4c703244ca09458f9aa3791cad56f Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 21 Jan 2024 21:44:35 +0900 Subject: [PATCH 31/68] Docs: Fix action script --- .github/workflows/pre-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index d631c3d..5368428 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -56,6 +56,7 @@ jobs: webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Failed' if: steps.unit-test-phase.outcome != 'success' + continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: error @@ -104,6 +105,7 @@ jobs: webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Fail' if: steps.e2e-test-phase.outcome != 'success' + continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: error From 3766a086bf19eebc7c3dc70142a2fd11c3357ccf Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 21 Jan 2024 21:50:34 +0900 Subject: [PATCH 32/68] Docs: Fix action script --- .github/workflows/pre-test.yml | 6 ++---- test/jest-e2e.json | 1 + test/jest-unit.json | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 5368428..9893d80 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -45,10 +45,10 @@ jobs: run: npm run ci:init - id: unit-test-phase name: Run Unit Test + continue-on-error: true run: npm run ci:unit - name: 'Discord Alert - Success' if: steps.unit-test-phase.outcome == 'success' - continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: info @@ -56,7 +56,6 @@ jobs: webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Failed' if: steps.unit-test-phase.outcome != 'success' - continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: error @@ -94,10 +93,10 @@ jobs: run: npm run ci:init - id: e2e-test-phase name: Run E2E Test + continue-on-error: true run: npm run ci:e2e - name: 'Discord Alert - Success' if: steps.e2e-test-phase.outcome == 'success' - continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: info @@ -105,7 +104,6 @@ jobs: webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Fail' if: steps.e2e-test-phase.outcome != 'success' - continue-on-error: true uses: rjstone/discord-webhook-notify@v1 with: severity: error diff --git a/test/jest-e2e.json b/test/jest-e2e.json index 84244f1..262f3bf 100644 --- a/test/jest-e2e.json +++ b/test/jest-e2e.json @@ -6,6 +6,7 @@ "transform": { "^.+\\.(t|j)s$": "ts-jest" }, + "testTimeout": 20000, "setupFilesAfterEnv": ["/../test/jest-extended.ts"], "coverageDirectory": "../e2e-coverage", "collectCoverageFrom": [ diff --git a/test/jest-unit.json b/test/jest-unit.json index 04dc3c1..9d626df 100644 --- a/test/jest-unit.json +++ b/test/jest-unit.json @@ -6,6 +6,7 @@ "transform": { "^.+\\.(t|j)s$": "ts-jest" }, + "testTimeout": 20000, "setupFilesAfterEnv": ["/../test/jest-extended.ts"], "coverageDirectory": "../unit-coverage", "collectCoverageFrom": [ From 1de2eed834c069f993a3073f0dfd3d9425992c8d Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sun, 21 Jan 2024 23:40:04 +0900 Subject: [PATCH 33/68] Fix: Fix pagination crush issue --- src/decorator/pagination.decorator.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/decorator/pagination.decorator.ts b/src/decorator/pagination.decorator.ts index 80b2ad4..fc9ee44 100644 --- a/src/decorator/pagination.decorator.ts +++ b/src/decorator/pagination.decorator.ts @@ -2,7 +2,7 @@ import { ExecutionContext, createParamDecorator } from '@nestjs/common'; import { ApiQuery } from '@nestjs/swagger'; import { Request } from 'express'; -const defaultPage = 0; +const defaultPage = 1; const defaultOffset = 10; export type PaginateObject = { From 3c0e253c58b0df24a04363b24de26cd192a93c28 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 00:11:10 +0900 Subject: [PATCH 34/68] Docs: Artifact Module Auth Swagger --- src/artifact/artifact.docs.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/artifact/artifact.docs.ts b/src/artifact/artifact.docs.ts index bf34d85..d012752 100644 --- a/src/artifact/artifact.docs.ts +++ b/src/artifact/artifact.docs.ts @@ -1,5 +1,6 @@ import { applyDecorators } from '@nestjs/common'; import { + ApiBearerAuth, ApiBody, ApiConsumes, ApiCreatedResponse, @@ -11,7 +12,7 @@ import { UploadStaticArtifactResponse } from './response'; export class ArtifactDocs { public static Controller() { - return applyDecorators(ApiTags('Artifact')); + return applyDecorators(ApiTags('Artifact'), ApiBearerAuth()); } public static uploadStaticArtifact() { return applyDecorators( From 8f373fd1bc1c3b20708ae7fd1f31e132dc0cde86 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 00:48:35 +0900 Subject: [PATCH 35/68] Docs: Update Readme.md --- README.md | 129 +++++++++++++++++++++--------------------------- img/diagram.png | Bin 0 -> 556332 bytes 2 files changed, 56 insertions(+), 73 deletions(-) create mode 100644 img/diagram.png diff --git a/README.md b/README.md index cd080a9..1636db1 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,56 @@ -

- Nest Logo -

- -[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 -[circleci-url]: https://circleci.com/gh/nestjs/nest - -

A progressive Node.js framework for building efficient and scalable server-side applications.

-

-NPM Version -Package License -NPM Downloads -CircleCI -Coverage -Discord -Backers on Open Collective -Sponsors on Open Collective - - Support us - -

- - -## Description - -[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. - -## Installation - -```bash -$ yarn install -``` - -## Running the app - -```bash -# development -$ yarn run start - -# watch mode -$ yarn run start:dev - -# production mode -$ yarn run start:prod -``` - -## Test - -```bash -# unit tests -$ yarn run test - -# e2e tests -$ yarn run test:e2e - -# test coverage -$ yarn run test:cov -``` - -## Support - -Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). - -## Stay in touch - -- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) -- Website - [https://nestjs.com](https://nestjs.com/) -- Twitter - [@nestframework](https://twitter.com/nestframework) - -## License - -Nest is [MIT licensed](LICENSE) +# Online Judge System API + +--- + +# Diagram + +![](img/diagram.png) + +--- + +# Frontend Repository + +- Author: Oseungkwon +- [Repository](https://github.com/OseungKwon/Online-Judge-System-Web) + +--- + +# Test Coverage + +- Unit Test: 79.13% +- E2E Test: 88.12% + +--- + +# Technical Stack + +- Language + - TypeScript(Node.js v18 Runtime) +- Framework + - Nest.js +- ORM + - Prisma ORM +- Database(Persistence & Caching) + - MySQL 8.0 + - Redis + - AWS S3 +- Issue Tracking + - Sentry +- Proxy Server + - Nginx +- Infrastructure + - AWS Elastic Beanstalk(EC2 Instance) + - Node.js Runtime x2 (Worker Server & Web Server) + - Docker Runtime x1 + - AWS Worker Communication + - Auto Scaling Group + - AWS SQS: For worker server + - AWS S3: Build Versioning +- Test + - Jest + - Jest-Extended +- CI/CD + - Github Actions + - Code Pipeline & Code Build +- Alert + - Discord diff --git a/img/diagram.png b/img/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..50d9bee0268f01f306e5cfd5dca9457550f72f63 GIT binary patch literal 556332 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

^r;k`ycnB2de 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 b_zv|3A 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�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 z Date: Mon, 22 Jan 2024 01:04:48 +0900 Subject: [PATCH 36/68] Docs: Update readme --- README.md | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1636db1..45a3014 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ # Test Coverage -- Unit Test: 79.13% - E2E Test: 88.12% +- Unit & Integration Test: 79.13% --- @@ -39,11 +39,12 @@ - Proxy Server - Nginx - Infrastructure + - Docker & Docker-Compose - AWS Elastic Beanstalk(EC2 Instance) - Node.js Runtime x2 (Worker Server & Web Server) - Docker Runtime x1 - AWS Worker Communication - - Auto Scaling Group + - AWS Auto Scaling Group - AWS SQS: For worker server - AWS S3: Build Versioning - Test @@ -54,3 +55,107 @@ - Code Pipeline & Code Build - Alert - Discord + +--- + +# Run Application + +1. Git clone repository + + ``` + git clone https://github.com/J-Hoplin/Online-Judge-System.git + + cd Online-Judge-System + ``` + +2. Install dependencies + + ``` + yarn install + ``` + +3. Run/Stop database with docker + + ``` + # Start + yarn db:dev:up + ``` + + ``` + # Stop + yarn db:dev:down + ``` + +4. Sync prisma schema to database + + ``` + yarn db:push + ``` + +5. Run application + + ``` + yarn dev + ``` + +--- + +# Run E2E Test + +- Config: test/jest-e2e.json +- Mock Provider: test/mock.provider.ts + +1. Run database + + ``` + yarn db:dev:up + ``` + +2. Initialize test database + + ``` + yarn test:init + ``` + +3. Run E2E Test + + ``` + yarn test:e2e + ``` + +4. Run E2E Coverage Test + + ``` + yarn test:e2e:cov + ``` + +--- + +# Run Unit Test + +- Config: test/jest-unit.json +- Mock Provider: test/mock.provider.ts + +1. Run database + + ``` + yarn db:dev:up + ``` + +2. Initialize test database + + ``` + yarn test:init + ``` + +3. Run E2E Test + + ``` + yarn test:unit + ``` + +4. Run E2E Coverage Test + + ``` + yarn test:unit:cov + ``` From 5fc0b6407bfd3fbf7d67f0d60a8d78aeafa5186d Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 01:18:20 +0900 Subject: [PATCH 37/68] Docs: Update readme --- README.md | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 45a3014..ef9298a 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,35 @@ # Online Judge System API ---- +- Author: J-Hoplin +- Team + - J-Hoplin: Backend & Infrastructure + - Oseungkwon: Frontend -# Diagram +## Contents -![](img/diagram.png) +- [🔖 Diagram](#diagram) +- [📊 Test Coverage](#test-coverage) +- [🧰 Technical Stack](#technical-stack) +- [✅ Run Application](#run-application) +- [📄 Run E2E Test](#run-e2e-test) +- [📄 Run Unit Test](#run-unit-test) +- [📝 TODO](#todo) + +## Diagram ---- +![](img/diagram.png) -# Frontend Repository +## Frontend Repository - Author: Oseungkwon - [Repository](https://github.com/OseungKwon/Online-Judge-System-Web) ---- - -# Test Coverage +## Test Coverage - E2E Test: 88.12% - Unit & Integration Test: 79.13% ---- - -# Technical Stack +## Technical Stack - Language - TypeScript(Node.js v18 Runtime) @@ -56,9 +63,7 @@ - Alert - Discord ---- - -# Run Application +## Run Application 1. Git clone repository @@ -98,9 +103,7 @@ yarn dev ``` ---- - -# Run E2E Test +## Run E2E Test - Config: test/jest-e2e.json - Mock Provider: test/mock.provider.ts @@ -129,9 +132,7 @@ yarn test:e2e:cov ``` ---- - -# Run Unit Test +## Run Unit Test - Config: test/jest-unit.json - Mock Provider: test/mock.provider.ts @@ -159,3 +160,11 @@ ``` yarn test:unit:cov ``` + +## TODO + +- [ ] Apply Strategy Pattern to Asynchronous Worker + - Use Nest.js Custom Provider + - Rabbit MQ Strategy & AWS SQS Strategy +- Make Online Judge Server with Golang + - Now using [Judge0](https://judge0.com) based custom server From c3d32b850ba6ca9d990e3d09514f1930435dbe37 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 01:19:00 +0900 Subject: [PATCH 38/68] Docs: Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ef9298a..b26233d 100644 --- a/README.md +++ b/README.md @@ -166,5 +166,5 @@ - [ ] Apply Strategy Pattern to Asynchronous Worker - Use Nest.js Custom Provider - Rabbit MQ Strategy & AWS SQS Strategy -- Make Online Judge Server with Golang +- [ ] Make Online Judge Server with Golang - Now using [Judge0](https://judge0.com) based custom server From c1c8c3887568e060400d9dde9d7bdb83cca93097 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 01:34:10 +0900 Subject: [PATCH 39/68] Docs: Update readme --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b26233d..f7cafaf 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,13 @@ ## Contents -- [🔖 Diagram](#diagram) -- [📊 Test Coverage](#test-coverage) -- [🧰 Technical Stack](#technical-stack) -- [✅ Run Application](#run-application) -- [📄 Run E2E Test](#run-e2e-test) -- [📄 Run Unit Test](#run-unit-test) -- [📝 TODO](#todo) +- [🔖Diagram](#diagram) +- [📊Test Coverage](#test-coverage) +- [🧰Technical Stack](#technical-stack) +- [✅Run Application](#run-application) +- [📄Run E2E Test](#run-e2e-test) +- [📄Run Unit Test](#run-unit-test) +- [📝TODO](#todo) ## Diagram From c0e24f84b3f781e8a1f43afcf10bf78d379b7581 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 10:42:06 +0900 Subject: [PATCH 40/68] Feat: Add public meteadata decorator --- src/auth/guard/local.guard.ts | 26 +++++++++++++++++++++++++- src/decorator/index.ts | 1 + src/decorator/public.decorator.ts | 8 ++++++++ src/judge/judge.controller.e2e-spec.ts | 10 +++++----- src/judge/judge.controller.ts | 10 +++++++++- 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 src/decorator/public.decorator.ts diff --git a/src/auth/guard/local.guard.ts b/src/auth/guard/local.guard.ts index 7386ac3..d1b5135 100644 --- a/src/auth/guard/local.guard.ts +++ b/src/auth/guard/local.guard.ts @@ -1,4 +1,28 @@ +import { ExecutionContext, Injectable } from '@nestjs/common'; +import { Reflector } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; +import { AllowPublicToken } from 'app/decorator'; // JWT Guard returns 401 default -export class LocalGuard extends AuthGuard('local') {} +@Injectable() +export class LocalGuard extends AuthGuard('local') { + constructor(private reflector: Reflector) { + super(); + } + + async canActivate(context: ExecutionContext) { + const allowPublic = this.reflector.get( + AllowPublicToken, + context.getHandler(), + ); + + if (allowPublic) { + try { + return (await super.canActivate(context)) as boolean; + } catch (err) { + return true; + } + } + return (await super.canActivate(context)) as boolean; + } +} diff --git a/src/decorator/index.ts b/src/decorator/index.ts index dfa6dab..c19a9a1 100644 --- a/src/decorator/index.ts +++ b/src/decorator/index.ts @@ -1,3 +1,4 @@ export * from './get-user.decorator'; export * from './pagination.decorator'; export * from './role.decorator'; +export * from './public.decorator'; diff --git a/src/decorator/public.decorator.ts b/src/decorator/public.decorator.ts new file mode 100644 index 0000000..f7bb90f --- /dev/null +++ b/src/decorator/public.decorator.ts @@ -0,0 +1,8 @@ +import { SetMetadata } from '@nestjs/common'; + +/** + * Set metadata as allow-public true + * + */ +export const AllowPublicToken = 'allow-public'; +export const AllowPublic = () => SetMetadata(AllowPublicToken, true); diff --git a/src/judge/judge.controller.e2e-spec.ts b/src/judge/judge.controller.e2e-spec.ts index 926ca2e..2bde23b 100644 --- a/src/judge/judge.controller.e2e-spec.ts +++ b/src/judge/judge.controller.e2e-spec.ts @@ -121,7 +121,7 @@ describe('/judge Judge Controller', () => { // Test describe('/languages GET', () => { it('should throw if unauthenticated', async () => { - return request(app.getHttpServer()).get('/judge').expect(401); + return request(app.getHttpServer()).get('/judge/languages').expect(401); }); it('should get language list', async () => { return request(app.getHttpServer()) @@ -132,8 +132,8 @@ describe('/judge Judge Controller', () => { }); describe('/ GET', () => { - it('should throw if unauthenticated', async () => { - return request(app.getHttpServer()).get('/judge').expect(401); + it('should allow unauthenticated', async () => { + return request(app.getHttpServer()).get('/judge').expect(200); }); it('should get problem list', async () => { return request(app.getHttpServer()) @@ -144,10 +144,10 @@ describe('/judge Judge Controller', () => { }); describe('/:pid GET', () => { - it('should throw if unauthenticated', async () => { + it('should allow unauthenticated', async () => { return request(app.getHttpServer()) .get(`/judge/${problemId}`) - .expect(401); + .expect(200); }); it('should get problem info', async () => { return request(app.getHttpServer()) diff --git a/src/judge/judge.controller.ts b/src/judge/judge.controller.ts index dcf4ae0..c853b5b 100644 --- a/src/judge/judge.controller.ts +++ b/src/judge/judge.controller.ts @@ -8,10 +8,16 @@ import { ParseIntPipe, Patch, Post, + Req, UseGuards, } from '@nestjs/common'; import { LocalGuard } from 'app/auth/guard'; -import { GetUser, PaginateObject, Pagination } from 'app/decorator'; +import { + AllowPublic, + GetUser, + PaginateObject, + Pagination, +} from 'app/decorator'; import { JudgeFilter, JudgeFilterObject, @@ -44,6 +50,7 @@ export class JudgeController { } @Get('/') + @AllowPublic() @JudgeDocs.ListProblem() listProblem( @JudgeFilter() filter: JudgeFilterObject, @@ -53,6 +60,7 @@ export class JudgeController { } @Get('/:pid') + @AllowPublic() @UseGuards(ProblemGuard) @JudgeDocs.ReadProblem() readProblem(@Param('pid', ParseIntPipe) pid: number) { From 716045f4c347d1c4e6b72d4c6d4dcb12856564b6 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 14:25:26 +0900 Subject: [PATCH 41/68] Fix: Apply Bi-Directional access to readProblem API --- src/judge/judge.controller.ts | 9 ++- src/judge/judge.docs.ts | 5 +- src/judge/judge.service.spec.ts | 18 +++++- src/judge/judge.service.ts | 72 +++++++++++++++++---- src/judge/response/read-problem.response.ts | 6 ++ src/type.ts | 6 ++ src/user/user.service.spec.ts | 4 ++ 7 files changed, 103 insertions(+), 17 deletions(-) diff --git a/src/judge/judge.controller.ts b/src/judge/judge.controller.ts index c853b5b..0c5cfc8 100644 --- a/src/judge/judge.controller.ts +++ b/src/judge/judge.controller.ts @@ -8,7 +8,7 @@ import { ParseIntPipe, Patch, Post, - Req, + Request, UseGuards, } from '@nestjs/common'; import { LocalGuard } from 'app/auth/guard'; @@ -63,8 +63,11 @@ export class JudgeController { @AllowPublic() @UseGuards(ProblemGuard) @JudgeDocs.ReadProblem() - readProblem(@Param('pid', ParseIntPipe) pid: number) { - return this.judgeService.readProblem(pid); + readProblem( + @Param('pid', ParseIntPipe) pid: number, + @Request() req: Request, + ) { + return this.judgeService.readProblem(pid, req); } @Post('/:pid/run') diff --git a/src/judge/judge.docs.ts b/src/judge/judge.docs.ts index 2114e3d..9a8699b 100644 --- a/src/judge/judge.docs.ts +++ b/src/judge/judge.docs.ts @@ -47,7 +47,10 @@ export class JudgeDocs { public static ReadProblem() { return applyDecorators( - ApiOperation({ summary: '문제 반환' }), + ApiOperation({ + summary: + '문제 반환. 비로그인 사용 가능 API. 비로그인 사용하는 경우에는 `isSuccess` 필드가 없습니다. Enum은 Response Schema 참고바랍니다.', + }), ApiOkResponse({ type: ReadProblemResponse, }), diff --git a/src/judge/judge.service.spec.ts b/src/judge/judge.service.spec.ts index 238d7e1..4863f71 100644 --- a/src/judge/judge.service.spec.ts +++ b/src/judge/judge.service.spec.ts @@ -25,6 +25,7 @@ import { SubmitProblemDto, } from './dto'; import { SubmissionFilterObject } from './decorator/submission-filter.decorator'; +import { ProblemStatus } from 'app/type'; describe('JudgeService', () => { let service: JudgeService; @@ -147,14 +148,27 @@ describe('JudgeService', () => { }); describe('readProblem()', () => { - it('should read problem', async () => { + it('should read problem if not authenticated', async () => { // given const id = problem1['id']; // when - const problem = await service.readProblem(id); + const problem = await service.readProblem(id, undefined); // then expect(problem.id).toBe(id); }); + + it('should read problem if authenticated', async () => { + // given + const id = problem1['id']; + // when + const problem = await service.readProblem(id, { + user: user1, + }); + // then + expect(problem.id).toBe(id); + expect(problem).toHaveProperty('isSuccess'); + expect(problem['isSuccess']).toBe(ProblemStatus.PENDING); + }); }); describe('runProblem()', () => { diff --git a/src/judge/judge.service.ts b/src/judge/judge.service.ts index 6e46750..d323820 100644 --- a/src/judge/judge.service.ts +++ b/src/judge/judge.service.ts @@ -17,6 +17,7 @@ import { UpdateSubmissionDto, } from './dto'; import { GetLanguagesResponse } from './response/get-languages.response'; +import { ProblemStatus } from 'app/type'; /** * Prisma 2025 -> Target entity not found @@ -103,19 +104,68 @@ export class JudgeService { return filteredList; } - async readProblem(pid: number) { - return await this.prisma.problem.findUniqueOrThrow({ - where: { - id: pid, - }, - include: { - examples: { - where: { - isPublic: true, + async readProblem(pid: number, req: any) { + if (req?.user) { + // If authorized user -> return submission with correct + const problem = await this.prisma.problem.findUnique({ + where: { + id: pid, + }, + include: { + examples: { + where: { + isPublic: true, + }, }, }, - }, - }); + }); + const submissionsAggregate = await this.prisma.submission.groupBy({ + by: ['isCorrect'], + _count: { + _all: true, + }, + where: { + userId: req['user']['id'], + }, + }); + let all = 0; + let success = 0; + let status: ProblemStatus; + for (const group of submissionsAggregate) { + // Count all of submission + all += group._count._all; + // Count correct submission + if (group.isCorrect) { + success += 1; + } + } + + // If submission not exist + if (!all) { + status = ProblemStatus.PENDING; + } else if (all && success > 0) { + status = ProblemStatus.SUCCESS; + } else { + status = ProblemStatus.FAIL; + } + return { + ...problem, + isSuccess: status, + }; + } else { + return await this.prisma.problem.findUnique({ + where: { + id: pid, + }, + include: { + examples: { + where: { + isPublic: true, + }, + }, + }, + }); + } } async runProblem(pid: number, dto: RunProblemDto) { diff --git a/src/judge/response/read-problem.response.ts b/src/judge/response/read-problem.response.ts index 2a46f83..4e9c624 100644 --- a/src/judge/response/read-problem.response.ts +++ b/src/judge/response/read-problem.response.ts @@ -1,4 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; +import { ProblemStatus } from 'app/type'; import { ProblemDomain, ProblemExampleDomain } from 'domains'; class ReadProblemResponseExamples extends ProblemExampleDomain {} @@ -9,4 +10,9 @@ export class ReadProblemResponse extends ProblemDomain { isArray: true, }) examples: ReadProblemResponse[]; + + @ApiProperty({ + enum: ProblemStatus, + }) + isSuccess: ProblemStatus; } diff --git a/src/type.ts b/src/type.ts index b8cbec1..d6645c8 100644 --- a/src/type.ts +++ b/src/type.ts @@ -3,6 +3,12 @@ export type JwtPayload = { email: string; }; +export enum ProblemStatus { + PENDING = 'PENDING', + SUCCESS = 'SUCCESS', + FAIL = 'FAIL', +} + // Common Prisma Enum type // Convert enum to interface(type) diff --git a/src/user/user.service.spec.ts b/src/user/user.service.spec.ts index cc23567..29dedad 100644 --- a/src/user/user.service.spec.ts +++ b/src/user/user.service.spec.ts @@ -68,6 +68,8 @@ describe('UserService', () => { it("should get user's profile", async () => { const result = await service.getProfile(user1.id); expect(result.id).not.toBeUndefined(); + expect(result).toBeObject(); + expect(result).toContainKeys(Object.keys(UserDomain)); }); it('should throw if user not found', async () => { try { @@ -128,6 +130,8 @@ describe('UserService', () => { null, ); expect(result).not.toBeUndefined(); + expect(result).toBeObject(); + expect(result).toContainAllKeys(Object.keys(user1)); }); it('should throw if password unmatched', async () => { From f920cd97121b04780b907ba0596474155e18a8cd Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 22:44:08 +0900 Subject: [PATCH 42/68] Feat: Add problem isPublic metadata decorator --- src/judge/judge.controller.ts | 3 +- src/judge/judge.docs.ts | 1 + src/judge/judge.service.spec.ts | 65 +++++++++++++++++++-- src/judge/judge.service.ts | 57 ++++++++++++++++-- src/judge/response/list-problem.response.ts | 6 ++ 5 files changed, 122 insertions(+), 10 deletions(-) diff --git a/src/judge/judge.controller.ts b/src/judge/judge.controller.ts index 0c5cfc8..d91ae93 100644 --- a/src/judge/judge.controller.ts +++ b/src/judge/judge.controller.ts @@ -55,8 +55,9 @@ export class JudgeController { listProblem( @JudgeFilter() filter: JudgeFilterObject, @Pagination() paginate: PaginateObject, + @Request() req: Request, ) { - return this.judgeService.listProblem(filter, paginate); + return this.judgeService.listProblem(filter, paginate, req); } @Get('/:pid') diff --git a/src/judge/judge.docs.ts b/src/judge/judge.docs.ts index 9a8699b..9144dd4 100644 --- a/src/judge/judge.docs.ts +++ b/src/judge/judge.docs.ts @@ -42,6 +42,7 @@ export class JudgeDocs { return applyDecorators( ApiOperation({ summary: '문제 리스트 출력' }), ApiOkResponse({ type: ListProblemResponse, isArray: true }), + ...PaginationDocs, ); } diff --git a/src/judge/judge.service.spec.ts b/src/judge/judge.service.spec.ts index 4863f71..9f0112b 100644 --- a/src/judge/judge.service.spec.ts +++ b/src/judge/judge.service.spec.ts @@ -43,6 +43,8 @@ describe('JudgeService', () => { // Closed Problem let problem2: ProblemDomain; + let problem3: ProblemDomain; + let openSubmission: SubmissionDomain; let closedSubmission: SubmissionDomain; @@ -94,12 +96,21 @@ describe('JudgeService', () => { problem2 = await prisma.problem.create({ data: { - title: 'No Problem', + title: 'No Example', contributerId: user1.id, tags: [], isOpen: true, }, }); + + problem3 = await prisma.problem.create({ + data: { + title: 'Closed Problem', + contributerId: user1.id, + tags: [], + isOpen: false, + }, + }); }); afterAll(async () => { @@ -120,7 +131,41 @@ describe('JudgeService', () => { }); describe('listProblem()', () => { - it('should list problem', async () => { + it('should read problem if not authenticated', async () => { + //given + const filter: JudgeFilterObject = { + Orderby: {}, + Where: { + title: { + contains: 'Have', + }, + }, + }; + const paginate: PaginateObject = { + skip: 0, + take: 10, + }; + //when + const problems = await service.listProblem(filter, paginate, {}); + // Then + expect(problems[0]).not.toHaveProperty('isSuccess'); + expect(problems).toEqual( + expect.arrayContaining([ + expect.not.objectContaining({ + id: problem3.id, + }), + ]), + ); + expect(problems).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: problem1.id, + }), + ]), + ); + }); + + it('should read problem if authenticated', async () => { //given const filter: JudgeFilterObject = { Orderby: {}, @@ -135,8 +180,18 @@ describe('JudgeService', () => { take: 10, }; //when - const problems = await service.listProblem(filter, paginate); + const problems = await service.listProblem(filter, paginate, { + user: user1, + }); // Then + expect(problems[0]).toHaveProperty('isSuccess'); + expect(problems).toEqual( + expect.arrayContaining([ + expect.not.objectContaining({ + id: problem3.id, + }), + ]), + ); expect(problems).toEqual( expect.arrayContaining([ expect.objectContaining({ @@ -148,13 +203,14 @@ describe('JudgeService', () => { }); describe('readProblem()', () => { - it('should read problem if not authenticated', async () => { + it('should allow not authenticated', async () => { // given const id = problem1['id']; // when const problem = await service.readProblem(id, undefined); // then expect(problem.id).toBe(id); + expect(problem).not.toHaveProperty('isSuccess'); }); it('should read problem if authenticated', async () => { @@ -167,7 +223,6 @@ describe('JudgeService', () => { // then expect(problem.id).toBe(id); expect(problem).toHaveProperty('isSuccess'); - expect(problem['isSuccess']).toBe(ProblemStatus.PENDING); }); }); diff --git a/src/judge/judge.service.ts b/src/judge/judge.service.ts index d323820..01e86df 100644 --- a/src/judge/judge.service.ts +++ b/src/judge/judge.service.ts @@ -47,11 +47,16 @@ export class JudgeService { return list; } - async listProblem(filter: JudgeFilterObject, paginate: PaginateObject) { + async listProblem( + filter: JudgeFilterObject, + paginate: PaginateObject, + req: any, + ) { const problems = await this.prisma.problem.findMany({ ...paginate, where: { ...filter.Where, + isOpen: true, }, orderBy: { ...filter.Orderby, @@ -92,13 +97,56 @@ export class JudgeService { } }); - const correctionRate = (correct / total).toFixed(3); - filteredList.push({ + let correctionRate; + // Correction Rate + if (total) { + correctionRate = (correct / total).toFixed(3); + } else { + correctionRate = 0; + } + + const problemItem = { ...problem, correct, total, correctionRate, - }); + }; + + // Check if correct + if (req?.user) { + const submissionsAggregate = await this.prisma.submission.groupBy({ + by: ['isCorrect'], + _count: { + _all: true, + }, + where: { + userId: req['user']['id'], + problemId: problem.id, + }, + }); + let all = 0; + let success = 0; + let status: ProblemStatus; + for (const group of submissionsAggregate) { + // Count all of submission + all += group._count._all; + // Count correct submission + if (group.isCorrect) { + success += 1; + } + } + // If submission not exist + if (!all) { + status = ProblemStatus.PENDING; + } else if (all && success > 0) { + status = ProblemStatus.SUCCESS; + } else { + status = ProblemStatus.FAIL; + } + problemItem['isSuccess'] = status; + } + + filteredList.push(problemItem); } return filteredList; @@ -126,6 +174,7 @@ export class JudgeService { }, where: { userId: req['user']['id'], + problemId: pid, }, }); let all = 0; diff --git a/src/judge/response/list-problem.response.ts b/src/judge/response/list-problem.response.ts index 7c87b93..b9e7486 100644 --- a/src/judge/response/list-problem.response.ts +++ b/src/judge/response/list-problem.response.ts @@ -1,4 +1,5 @@ import { ApiProperty, PickType } from '@nestjs/swagger'; +import { ProblemStatus } from 'app/type'; import { ProblemDomain, UserDomain } from 'domains'; export class ListProblemContributerResponse extends PickType(UserDomain, [ @@ -22,4 +23,9 @@ export class ListProblemResponse extends PickType(ProblemDomain, [ @ApiProperty() correctionRate: number; + + @ApiProperty({ + enum: ProblemStatus, + }) + isSuccess: ProblemStatus; } From ac5137bbcb8ec73337c4a7c9bcabb9f83ce98e4b Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Mon, 22 Jan 2024 23:39:36 +0900 Subject: [PATCH 43/68] Feat: Add documentation for both authenticated, unauthenticated --- src/judge/judge.docs.ts | 141 +++++++++++++++++++- src/judge/response/list-problem.response.ts | 4 +- src/judge/response/read-problem.response.ts | 6 +- 3 files changed, 142 insertions(+), 9 deletions(-) diff --git a/src/judge/judge.docs.ts b/src/judge/judge.docs.ts index 9144dd4..23dbd7d 100644 --- a/src/judge/judge.docs.ts +++ b/src/judge/judge.docs.ts @@ -1,12 +1,15 @@ -import { applyDecorators } from '@nestjs/common'; +import { HttpStatus, applyDecorators } from '@nestjs/common'; import { ApiBadRequestResponse, ApiBearerAuth, + ApiExtraModels, ApiForbiddenResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, + ApiResponse, ApiTags, + getSchemaPath, } from '@nestjs/swagger'; import { PaginationDocs } from 'app/decorator'; @@ -17,10 +20,12 @@ import { DeleteProblemIssueCommentResponse, DeleteProblemIssueResponse, GetLanguagesResponse, + ListProblemAuthorizedResponse, ListProblemIssueResponse, - ListProblemResponse, + ListProblemUnautorizedResponse, ListUserSubmissionRepsonse, - ReadProblemResponse, + ReadProblemAuthenticatedResponse, + ReadProblemUnauthenticatedResponse, ReadPublicSubmissionResponse, RunProblemResponse, SubmitProblemResponse, @@ -41,7 +46,59 @@ export class JudgeDocs { public static ListProblem() { return applyDecorators( ApiOperation({ summary: '문제 리스트 출력' }), - ApiOkResponse({ type: ListProblemResponse, isArray: true }), + ApiExtraModels( + ListProblemUnautorizedResponse, + ListProblemAuthorizedResponse, + ), + ApiResponse({ + status: HttpStatus.OK, + content: { + 'application/json': { + schema: { + oneOf: [ + { + $ref: getSchemaPath(ListProblemAuthorizedResponse), + }, + { + $ref: getSchemaPath(ListProblemUnautorizedResponse), + }, + ], + }, + examples: { + Authenticated: { + value: [ + { + id: 11, + title: 'New Problem', + contributer: { + nickname: 'admin', + }, + correct: 1, + total: 1, + correctionRate: '1.000', + status: 'SUCCESS', + }, + ], + }, + Unauthenticated: { + value: [ + { + id: 10, + title: 'string', + contributer: { + nickname: 'admin', + }, + correct: 0, + total: 1, + correctionRate: '0.000', + }, + ], + }, + }, + }, + }, + }), + ...PaginationDocs, ); } @@ -52,9 +109,81 @@ export class JudgeDocs { summary: '문제 반환. 비로그인 사용 가능 API. 비로그인 사용하는 경우에는 `isSuccess` 필드가 없습니다. Enum은 Response Schema 참고바랍니다.', }), - ApiOkResponse({ - type: ReadProblemResponse, + ApiResponse({ + status: HttpStatus.OK, + content: { + 'application/json': { + schema: { + oneOf: [ + { + $ref: getSchemaPath(ReadProblemAuthenticatedResponse), + }, + { + $ref: getSchemaPath(ReadProblemUnauthenticatedResponse), + }, + ], + }, + examples: { + Authenticated: { + value: { + id: 11, + title: 'New Problem', + problem: 'Problem Here', + input: 'Input Here', + output: 'Output Here', + timeLimit: 5, + memoryLimit: 128, + contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', + tags: [], + isOpen: true, + isArchived: false, + deletedAt: null, + createdAt: '2024-01-16T14:12:07.748Z', + updatedAt: '2024-01-16T14:12:39.185Z', + examples: [ + { + id: 6, + input: '', + output: 'hello world', + isPublic: true, + problemId: 11, + }, + ], + isSuccess: 'SUCCESS', + }, + }, + Unauthenticated: { + value: { + id: 11, + title: 'New Problem', + problem: 'Problem Here', + input: 'Input Here', + output: 'Output Here', + timeLimit: 5, + memoryLimit: 128, + contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', + tags: [], + isOpen: true, + isArchived: false, + deletedAt: null, + createdAt: '2024-01-16T14:12:07.748Z', + updatedAt: '2024-01-16T14:12:39.185Z', + examples: [ + { + id: 6, + input: '', + output: 'hello world', + isPublic: true, + problemId: 11, + }, + ], + }, + }, + }, + }, + }, }), + ApiNotFoundResponse({ description: ['PROBLEM_NOT_FOUND'].join(', ') }), ); } diff --git a/src/judge/response/list-problem.response.ts b/src/judge/response/list-problem.response.ts index b9e7486..c3775a7 100644 --- a/src/judge/response/list-problem.response.ts +++ b/src/judge/response/list-problem.response.ts @@ -6,7 +6,7 @@ export class ListProblemContributerResponse extends PickType(UserDomain, [ 'nickname', ]) {} -export class ListProblemResponse extends PickType(ProblemDomain, [ +export class ListProblemUnautorizedResponse extends PickType(ProblemDomain, [ 'id', 'title', ]) { @@ -23,7 +23,9 @@ export class ListProblemResponse extends PickType(ProblemDomain, [ @ApiProperty() correctionRate: number; +} +export class ListProblemAuthorizedResponse extends ListProblemUnautorizedResponse { @ApiProperty({ enum: ProblemStatus, }) diff --git a/src/judge/response/read-problem.response.ts b/src/judge/response/read-problem.response.ts index 4e9c624..b8dfe11 100644 --- a/src/judge/response/read-problem.response.ts +++ b/src/judge/response/read-problem.response.ts @@ -4,13 +4,15 @@ import { ProblemDomain, ProblemExampleDomain } from 'domains'; class ReadProblemResponseExamples extends ProblemExampleDomain {} -export class ReadProblemResponse extends ProblemDomain { +export class ReadProblemUnauthenticatedResponse extends ProblemDomain { @ApiProperty({ type: ReadProblemResponseExamples, isArray: true, }) - examples: ReadProblemResponse[]; + examples: ReadProblemResponseExamples[]; +} +export class ReadProblemAuthenticatedResponse extends ReadProblemUnauthenticatedResponse { @ApiProperty({ enum: ProblemStatus, }) From 3e650117b970f613c832dc583c8e93159f2ab355 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 23 Jan 2024 00:47:07 +0900 Subject: [PATCH 44/68] Docs: Add swagger multiple response docs decorator --- src/decorator/multiple-response.decorator.ts | 47 +++++ src/judge/judge.docs.ts | 205 ++++++++----------- src/judge/response/list-problem.response.ts | 10 +- 3 files changed, 137 insertions(+), 125 deletions(-) create mode 100644 src/decorator/multiple-response.decorator.ts diff --git a/src/decorator/multiple-response.decorator.ts b/src/decorator/multiple-response.decorator.ts new file mode 100644 index 0000000..ed7dc9d --- /dev/null +++ b/src/decorator/multiple-response.decorator.ts @@ -0,0 +1,47 @@ +import { HttpStatus, Type, applyDecorators } from '@nestjs/common'; +import { ApiExtraModels, ApiResponse, getSchemaPath } from '@nestjs/swagger'; + +interface ResponseReference { + classRef: Type; + example: any; + isArray?: boolean; + description?: string; +} + +export type MultipleResponseOptions = Record; + +// Use when Swagger requires to view multiple response +export const ApiMultipleResponse = ( + statusCode: HttpStatus | number, + options: MultipleResponseOptions, +) => { + const models = Object.values(options).map((option) => { + return option.classRef; + }); + + const responseExample = {}; + for (const [key, option] of Object.entries(options)) { + responseExample[key] = { + value: option.isArray ? [option.example] : option.example, + }; + } + + return applyDecorators( + ApiExtraModels(...models), + ApiResponse({ + status: statusCode, + content: { + 'application/json': { + schema: { + oneOf: models.map((model) => { + return { + $ref: getSchemaPath(model), + }; + }), + }, + examples: responseExample, + }, + }, + }), + ); +}; diff --git a/src/judge/judge.docs.ts b/src/judge/judge.docs.ts index 23dbd7d..87c017b 100644 --- a/src/judge/judge.docs.ts +++ b/src/judge/judge.docs.ts @@ -2,7 +2,6 @@ import { HttpStatus, applyDecorators } from '@nestjs/common'; import { ApiBadRequestResponse, ApiBearerAuth, - ApiExtraModels, ApiForbiddenResponse, ApiNotFoundResponse, ApiOkResponse, @@ -13,6 +12,7 @@ import { } from '@nestjs/swagger'; import { PaginationDocs } from 'app/decorator'; +import { ApiMultipleResponse } from 'app/decorator/multiple-response.decorator'; import { ProblemIssueDomain, SubmissionDomain } from 'domains'; import { SubmissionFilterDocs } from './decorator/submission-filter.decorator'; import { @@ -20,9 +20,9 @@ import { DeleteProblemIssueCommentResponse, DeleteProblemIssueResponse, GetLanguagesResponse, - ListProblemAuthorizedResponse, + ListProblemAuthenticatedResponse, ListProblemIssueResponse, - ListProblemUnautorizedResponse, + ListProblemUnAuthenticatedResponse, ListUserSubmissionRepsonse, ReadProblemAuthenticatedResponse, ReadProblemUnauthenticatedResponse, @@ -46,59 +46,39 @@ export class JudgeDocs { public static ListProblem() { return applyDecorators( ApiOperation({ summary: '문제 리스트 출력' }), - ApiExtraModels( - ListProblemUnautorizedResponse, - ListProblemAuthorizedResponse, - ), - ApiResponse({ - status: HttpStatus.OK, - content: { - 'application/json': { - schema: { - oneOf: [ - { - $ref: getSchemaPath(ListProblemAuthorizedResponse), - }, - { - $ref: getSchemaPath(ListProblemUnautorizedResponse), - }, - ], + ApiMultipleResponse(HttpStatus.OK, { + Authenticated: { + classRef: ListProblemUnAuthenticatedResponse, + example: { + id: 11, + title: 'New Problem', + contributer: { + nickname: 'admin', }, - examples: { - Authenticated: { - value: [ - { - id: 11, - title: 'New Problem', - contributer: { - nickname: 'admin', - }, - correct: 1, - total: 1, - correctionRate: '1.000', - status: 'SUCCESS', - }, - ], - }, - Unauthenticated: { - value: [ - { - id: 10, - title: 'string', - contributer: { - nickname: 'admin', - }, - correct: 0, - total: 1, - correctionRate: '0.000', - }, - ], - }, + correct: 1, + total: 1, + correctionRate: '1.000', + status: 'SUCCESS', + }, + isArray: true, + description: 'If authenticated response', + }, + UnAuthenticated: { + classRef: ListProblemAuthenticatedResponse, + example: { + id: 10, + title: 'string', + contributer: { + nickname: 'admin', }, + correct: 0, + total: 1, + correctionRate: '0.000', }, + isArray: true, + description: 'If Unauthenticated Response', }, }), - ...PaginationDocs, ); } @@ -109,77 +89,62 @@ export class JudgeDocs { summary: '문제 반환. 비로그인 사용 가능 API. 비로그인 사용하는 경우에는 `isSuccess` 필드가 없습니다. Enum은 Response Schema 참고바랍니다.', }), - ApiResponse({ - status: HttpStatus.OK, - content: { - 'application/json': { - schema: { - oneOf: [ - { - $ref: getSchemaPath(ReadProblemAuthenticatedResponse), - }, - { - $ref: getSchemaPath(ReadProblemUnauthenticatedResponse), - }, - ], - }, - examples: { - Authenticated: { - value: { - id: 11, - title: 'New Problem', - problem: 'Problem Here', - input: 'Input Here', - output: 'Output Here', - timeLimit: 5, - memoryLimit: 128, - contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', - tags: [], - isOpen: true, - isArchived: false, - deletedAt: null, - createdAt: '2024-01-16T14:12:07.748Z', - updatedAt: '2024-01-16T14:12:39.185Z', - examples: [ - { - id: 6, - input: '', - output: 'hello world', - isPublic: true, - problemId: 11, - }, - ], - isSuccess: 'SUCCESS', - }, + ApiMultipleResponse(HttpStatus.OK, { + Authenticated: { + classRef: ReadProblemAuthenticatedResponse, + example: { + id: 11, + title: 'New Problem', + problem: 'Problem Here', + input: 'Input Here', + output: 'Output Here', + timeLimit: 5, + memoryLimit: 128, + contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', + tags: [], + isOpen: true, + isArchived: false, + deletedAt: null, + createdAt: '2024-01-16T14:12:07.748Z', + updatedAt: '2024-01-16T14:12:39.185Z', + examples: [ + { + id: 6, + input: '', + output: 'hello world', + isPublic: true, + problemId: 11, }, - Unauthenticated: { - value: { - id: 11, - title: 'New Problem', - problem: 'Problem Here', - input: 'Input Here', - output: 'Output Here', - timeLimit: 5, - memoryLimit: 128, - contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', - tags: [], - isOpen: true, - isArchived: false, - deletedAt: null, - createdAt: '2024-01-16T14:12:07.748Z', - updatedAt: '2024-01-16T14:12:39.185Z', - examples: [ - { - id: 6, - input: '', - output: 'hello world', - isPublic: true, - problemId: 11, - }, - ], - }, + ], + isSuccess: 'SUCCESS', + }, + }, + UnAuthenticated: { + classRef: ReadProblemUnauthenticatedResponse, + example: { + id: 11, + title: 'New Problem', + problem: 'Problem Here', + input: 'Input Here', + output: 'Output Here', + timeLimit: 5, + memoryLimit: 128, + contributerId: '97f16592-93a3-4bba-9bc5-08f55c860bd4', + tags: [], + isOpen: true, + isArchived: false, + deletedAt: null, + createdAt: '2024-01-16T14:12:07.748Z', + updatedAt: '2024-01-16T14:12:39.185Z', + examples: [ + { + id: 6, + input: '', + output: 'hello world', + isPublic: true, + problemId: 11, }, - }, + ], }, }, }), diff --git a/src/judge/response/list-problem.response.ts b/src/judge/response/list-problem.response.ts index c3775a7..a1b1cb0 100644 --- a/src/judge/response/list-problem.response.ts +++ b/src/judge/response/list-problem.response.ts @@ -6,10 +6,10 @@ export class ListProblemContributerResponse extends PickType(UserDomain, [ 'nickname', ]) {} -export class ListProblemUnautorizedResponse extends PickType(ProblemDomain, [ - 'id', - 'title', -]) { +export class ListProblemUnAuthenticatedResponse extends PickType( + ProblemDomain, + ['id', 'title'], +) { @ApiProperty({ type: ListProblemContributerResponse, }) @@ -25,7 +25,7 @@ export class ListProblemUnautorizedResponse extends PickType(ProblemDomain, [ correctionRate: number; } -export class ListProblemAuthorizedResponse extends ListProblemUnautorizedResponse { +export class ListProblemAuthenticatedResponse extends ListProblemUnAuthenticatedResponse { @ApiProperty({ enum: ProblemStatus, }) From 7ab7378d86d64cd81d976fc6cd4ba961b55873c0 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 23 Jan 2024 01:00:02 +0900 Subject: [PATCH 45/68] Docs: Add multiple body decorator --- ...or.ts => multiple-definition.decorator.ts} | 37 ++++++++++++++++++- src/judge/judge.docs.ts | 4 +- 2 files changed, 36 insertions(+), 5 deletions(-) rename src/decorator/{multiple-response.decorator.ts => multiple-definition.decorator.ts} (55%) diff --git a/src/decorator/multiple-response.decorator.ts b/src/decorator/multiple-definition.decorator.ts similarity index 55% rename from src/decorator/multiple-response.decorator.ts rename to src/decorator/multiple-definition.decorator.ts index ed7dc9d..24d6dfd 100644 --- a/src/decorator/multiple-response.decorator.ts +++ b/src/decorator/multiple-definition.decorator.ts @@ -1,5 +1,10 @@ import { HttpStatus, Type, applyDecorators } from '@nestjs/common'; -import { ApiExtraModels, ApiResponse, getSchemaPath } from '@nestjs/swagger'; +import { + ApiBody, + ApiExtraModels, + ApiResponse, + getSchemaPath, +} from '@nestjs/swagger'; interface ResponseReference { classRef: Type; @@ -10,7 +15,7 @@ interface ResponseReference { export type MultipleResponseOptions = Record; -// Use when Swagger requires to view multiple response +// Use when Swagger requires to show multiple response export const ApiMultipleResponse = ( statusCode: HttpStatus | number, options: MultipleResponseOptions, @@ -45,3 +50,31 @@ export const ApiMultipleResponse = ( }), ); }; + +// Use when Swagger requires to show multiple body +export const ApiMultipleBody = (options: MultipleResponseOptions) => { + const models = Object.values(options).map((option) => { + return option.classRef; + }); + + const responseExample = {}; + for (const [key, option] of Object.entries(options)) { + responseExample[key] = { + value: option.isArray ? [option.example] : option.example, + }; + } + + return applyDecorators( + ApiExtraModels(...models), + ApiBody({ + schema: { + oneOf: models.map((model) => { + return { + $ref: getSchemaPath(model), + }; + }), + }, + examples: responseExample, + }), + ); +}; diff --git a/src/judge/judge.docs.ts b/src/judge/judge.docs.ts index 87c017b..0ea4cd8 100644 --- a/src/judge/judge.docs.ts +++ b/src/judge/judge.docs.ts @@ -6,13 +6,11 @@ import { ApiNotFoundResponse, ApiOkResponse, ApiOperation, - ApiResponse, ApiTags, - getSchemaPath, } from '@nestjs/swagger'; import { PaginationDocs } from 'app/decorator'; -import { ApiMultipleResponse } from 'app/decorator/multiple-response.decorator'; +import { ApiMultipleResponse } from 'app/decorator/multiple-definition.decorator'; import { ProblemIssueDomain, SubmissionDomain } from 'domains'; import { SubmissionFilterDocs } from './decorator/submission-filter.decorator'; import { From 1ea68a6bdb4d1418f7ea0585cdd96aa711763413 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 23 Jan 2024 01:06:48 +0900 Subject: [PATCH 46/68] Refactor: Move user module local guard from handler level to controller scope. Apply @AllowPublic to credential API --- src/user/user.controller.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/user/user.controller.ts b/src/user/user.controller.ts index e401b0d..df498a5 100644 --- a/src/user/user.controller.ts +++ b/src/user/user.controller.ts @@ -15,7 +15,7 @@ import { CheckCredentialDto, UpdatePasswordDto } from './dto'; import { UpdateUserInfoDto } from './dto/update-user-info.dto'; import { UserDocs } from './user.docs'; import { UserService } from './user.service'; -import { GetUser } from 'app/decorator'; +import { AllowPublic, GetUser } from 'app/decorator'; import { Role } from 'app/decorator/role.decorator'; import { RoleGuard } from 'app/guard'; import { SetContributerDto } from './dto/set-contributor'; @@ -28,19 +28,18 @@ import { } from 'app/config'; @Controller('user') +@UseGuards(LocalGuard) @UserDocs.Controller() export class UserController { constructor(private userService: UserService) {} @Get('profile') - @UseGuards(LocalGuard) @UserDocs.GetMyProfile() getMyProfile(@GetUser() user: UserDomain) { return this.userService.getMyProfile(user); } @Get('profile/:uid') - @UseGuards(LocalGuard) @UserDocs.GetProfile() getProfile(@Param('uid') uid: string) { return this.userService.getProfile(uid); @@ -48,6 +47,7 @@ export class UserController { @Post('credential') @HttpCode(200) + @AllowPublic() @UserDocs.CheckCredential() checkCredential(@Body() dto: CheckCredentialDto) { return this.userService.checkCredential(dto); @@ -60,7 +60,6 @@ export class UserController { FileOptionFactory(UserProfileImageArtifactConfig), ), ) - @UseGuards(LocalGuard) @UserDocs.updateUserInfo() updateUserInfo( @GetUser() user: UserDomain, @@ -71,7 +70,6 @@ export class UserController { } @Patch('password') - @UseGuards(LocalGuard) @UserDocs.updatePassword() updatePassword(@GetUser() user: UserDomain, @Body() dto: UpdatePasswordDto) { return this.userService.updatePassword(user, dto); @@ -80,7 +78,6 @@ export class UserController { @Patch(['admin/role', 'role']) @Role(['Admin']) @UseGuards(RoleGuard) - @UseGuards(LocalGuard) @UserDocs.setRole() setRole(@GetUser() user: UserDomain, @Body() dto: SetContributerDto) { return this.userService.setRole(user, dto); From 22276a33fe888efc145cae69ee8b3b646b8b5564 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 23 Jan 2024 13:49:29 +0900 Subject: [PATCH 47/68] Chore: Add dockerize for local strategy --- .docker.env | 27 +++++++++++++++++++++++++++ Dockerfile | 6 ++---- README.md | 21 +++++++++++++++++++++ docker-compose.yaml | 24 +++++++++++++++++++----- package.json | 8 ++++++-- 5 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 .docker.env diff --git a/.docker.env b/.docker.env new file mode 100644 index 0000000..8c3558d --- /dev/null +++ b/.docker.env @@ -0,0 +1,27 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +DATABASE_URL="mysql://root:hoplin1234!@db:3306/judge?schema=public" + +ADMIN_EMAIL="hoplin.dev@gmail.com" +ADMIN_PW = "admin" + +JWT_SECRET="SECRET" + +JUDGE_SERVER_ENDPOINT="" + +ENV="" +PORT="" + +# AWS +AWS_REGION="" +AWS_ACCESS_ID="" +AWS_ACCESS_SECRET="" +AWS_SQS_QUEUE="" +AWS_S3_BUCKET="" + +# Sentry +SENTRY_DSN="" diff --git a/Dockerfile b/Dockerfile index 48bdeeb..f6ddb93 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,7 @@ FROM node:21-bullseye COPY . . -RUN yarn install\ -npx prisma migrate +RUN yarn install - -CMD [ "start" ] +CMD [ "docker:start" ] ENTRYPOINT [ "yarn" ] \ No newline at end of file diff --git a/README.md b/README.md index f7cafaf..de4ffce 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - [📊Test Coverage](#test-coverage) - [🧰Technical Stack](#technical-stack) - [✅Run Application](#run-application) +- [🐳Run Application With Docker] - [📄Run E2E Test](#run-e2e-test) - [📄Run Unit Test](#run-unit-test) - [📝TODO](#todo) @@ -103,6 +104,26 @@ yarn dev ``` +## Run Application with docker + +1. Build docker image + + ``` + docker build -t online-judge . + ``` + +2. Run with docker enviornment + + ``` + yarn docker:up + ``` + +3. Remove docker environment + + ``` + yarn docker:down + ``` + ## Run E2E Test - Config: test/jest-e2e.json diff --git a/docker-compose.yaml b/docker-compose.yaml index 4536e6a..28efc2f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,15 +5,29 @@ services: ports: - '3306:3306' restart: 'unless-stopped' - # volumes: - # - system-db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=hoplin1234! - MYSQL_ROOT_HOST=% - MYSQL_DATABASE=judge + networks: + - system + api: + image: online-judge + ports: + - '3000:3000' + restart: 'unless-stopped' + env_file: + - ./.docker.env + depends_on: + - db + networks: + - system + redis: + image: redis + ports: + - '6379:6379' + networks: + - system networks: system: driver: bridge -# volumes: -# system-db: -# external: false diff --git a/package.json b/package.json index 79ea1cf..6abdc78 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,13 @@ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"libs/**/*.ts\"", "start": "node dist/main", "dev": "nest start --watch", - "db:dev:up": "docker-compose up -d", - "db:dev:down": "docker-compose down", + "db:dev:up": "docker-compose up -d db", + "db:dev:down": "docker-compose down db", + "db:generate": "npx prisma generate", "db:push": "prisma db push", + "docker:up": "docker compose up -d", + "docker:down": "docker compose down", + "docker:start": "yarn db:push && yarn db:generate && yarn start", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", From 877f13c19d63fda1fdc11ae38390845093e2291c Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Tue, 23 Jan 2024 14:00:27 +0900 Subject: [PATCH 48/68] Chore/Docs: Update readme and add fail check phase to action --- .github/workflows/pre-test.yml | 6 ++++++ README.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 9893d80..6732b38 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -61,6 +61,9 @@ jobs: severity: error details: 'Unit Test Result: Fail' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Fail check' + if: steps.unit-test-phase.outcome != 'success' + run: exit1 e2e-testing: needs: unit-testing @@ -109,3 +112,6 @@ jobs: severity: error details: 'E2E Test Result: Failed' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Fail check' + if: steps.e2e-test-phase.outcome != 'success' + run: exit1 diff --git a/README.md b/README.md index de4ffce..47c267e 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ - [📊Test Coverage](#test-coverage) - [🧰Technical Stack](#technical-stack) - [✅Run Application](#run-application) -- [🐳Run Application With Docker] +- [🐳Run Application With Docker](#run-application-with-docker) - [📄Run E2E Test](#run-e2e-test) - [📄Run Unit Test](#run-unit-test) - [📝TODO](#todo) From cc86f6101b46cb3fe24c2cb2942ab1098cfbc44d Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:03:47 +0900 Subject: [PATCH 49/68] Chore: CI optimize --- .github/workflows/pre-test.yml | 110 ++++++++++++++++++++++++++------- package.json | 1 + src/prisma/prisma.service.ts | 16 ++--- 3 files changed, 95 insertions(+), 32 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 6732b38..7478332 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -13,7 +13,8 @@ on: type: string run-name: Unit/E2E test of ${{ github.ref_name }} by ${{ github.actor }} jobs: - unit-testing: + build: + name: Application Build Test & Set up & Initialize Test Database Server runs-on: ubuntu-latest steps: # Checkout repository codes @@ -39,10 +40,53 @@ jobs: echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies run: npm install --force - - name: Install dotenv-cli for dotenv cli - run: npm install -g dotenv-cli + - id: build-phase + name: Check Nest.js Application Build + continue-on-error: true + run: yarn build + # Push Prisma Schema to test DB - name: Initialize Prisma Client run: npm run ci:init + # Preserve Artifacts for test + - name: Preserve Artifacts + uses: actions/upload-artifact@v4 + with: + name: build-result + path: . + - name: 'Discord Alert - Success' + if: steps.build-phase.outcome == 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: info + details: 'Unit Test Result: Success' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Discord Alert - Failed' + if: steps.build-phase.outcome != 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: error + details: 'Unit Test Result: Fail' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Fail check' + if: steps.build-phase.outcome != 'success' + run: exit1 + + unit-testing: + needs: build + runs-on: ubuntu-latest + steps: + # Setup environment for Node.js 18 + - name: Node.js version 18 Environment setting + uses: actions/setup-node@v4 + with: + node-version: 18 + - name: Mount volume of pre-build + uses: actions/download-artifact@v4 + with: + name: build-result + path: . + - name: Install dotenv-cli for CI script + run: npm install -g dotenv-cli - id: unit-test-phase name: Run Unit Test continue-on-error: true @@ -66,34 +110,20 @@ jobs: run: exit1 e2e-testing: - needs: unit-testing + needs: build runs-on: ubuntu-latest steps: - - name: Repository Checkout - uses: actions/checkout@v4 - name: Node.js version 18 Environment setting uses: actions/setup-node@v4 with: node-version: 18 - - name: Initialize .ci.env - run: | - touch .ci.env - echo "DATABASE_URL=${{ secrets.DATABASE_URL}}" >> .ci.env - echo "ADMIN_EMAIL=${{secrets.ADMIN_EMAIL}}" >> .ci.env - echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env - echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env - echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env - echo "AWS_REGION"=${{secrets.AWS_REGION}}>> .ci.env - echo "AWS_ACCESS_ID=${{secrets.AWS_ACCESS_ID}}" >> .ci.env - echo "AWS_ACCESS_SECRET=${{secrets.AWS_ACCESS_SECRET}}" >> .ci.env - echo "AWS_SQS_QUEUE=${{secrets.AWS_SQS_QUEUE}}" >> .ci.env - echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - - name: Install Node.js Dependencies - run: npm install --force - - name: Install dotenv-cli for dotenv cli + - name: Mount volume of pre-build + uses: actions/download-artifact@v4 + with: + name: build-result + path: . + - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli - - name: Initialize Prisma Client - run: npm run ci:init - id: e2e-test-phase name: Run E2E Test continue-on-error: true @@ -115,3 +145,35 @@ jobs: - name: 'Fail check' if: steps.e2e-test-phase.outcome != 'success' run: exit1 + + tear-down: + needs: [unit-testing, e2e-testing] + runs-on: ubuntu-latest + steps: + - name: Node.js version 18 Environment setting + uses: actions/setup-node@v4 + with: + node-version: 18 + - name: Mount volume of pre-build + uses: actions/download-artifact@v4 + with: + name: build-result + path: . + - id: tear-down-phase + name: Test Database tear-down + continue-on-error: true + run: npm run ci:tearDown + - name: 'Discord Alert - Success' + if: steps.tear-down-phase.outcome == 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: info + details: 'E2E Test Result: Success' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Discord Alert - Fail' + if: steps.tear-down-phase.outcome != 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: error + details: 'E2E Test Result: Failed' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/package.json b/package.json index 6abdc78..4f29102 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "ci:init": "dotenv -e .ci.env -- npx prisma db push", + "ci:tearDown": "dotenv -e .ci.env -- npx prisma db push --force-reset", "ci:unit": "dotenv -e .ci.env -- jest --setupFiles jest --config ./test/jest-unit.json --runInBand", "ci:e2e": "dotenv -e .ci.env -- jest --config ./test/jest-e2e.json --runInBand", "test:init": "dotenv -e .test.env -- npx prisma db push", diff --git a/src/prisma/prisma.service.ts b/src/prisma/prisma.service.ts index 50b85a7..c58c76a 100644 --- a/src/prisma/prisma.service.ts +++ b/src/prisma/prisma.service.ts @@ -79,13 +79,13 @@ export class PrismaService } async deleteAll() { - await this.$transaction([ - this.submission.deleteMany(), - this.problemIssueComment.deleteMany(), - this.problemIssue.deleteMany(), - this.problemExample.deleteMany(), - this.problem.deleteMany(), - this.user.deleteMany(), - ]); + // await this.$transaction([ + // this.submission.deleteMany(), + // this.problemIssueComment.deleteMany(), + // this.problemIssue.deleteMany(), + // this.problemExample.deleteMany(), + // this.problem.deleteMany(), + // this.user.deleteMany(), + // ]); } } From 746fe4750dfe862ea7ec80d86c8f9dac35773f50 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:06:36 +0900 Subject: [PATCH 50/68] Chore: Add dotenv global install to build pahse --- .github/workflows/pre-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 7478332..73338d8 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -40,6 +40,8 @@ jobs: echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies run: npm install --force + - name: Install dotenv-cli for CI script + run: npm install -g dotenv-cli - id: build-phase name: Check Nest.js Application Build continue-on-error: true From 1d75f0daf88b296df1377eb5ce86187de52f8ea0 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:18:30 +0900 Subject: [PATCH 51/68] Chore: Try resolve github action permission problem --- .github/workflows/pre-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 73338d8..12d373d 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -54,7 +54,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: build-result - path: . + path: | + ${{ github.workspace }} + !.git/ - name: 'Discord Alert - Success' if: steps.build-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 From 841b45021ceeb3cbc1b5bfcb17ed307c06f7b829 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:23:02 +0900 Subject: [PATCH 52/68] Chore: Try resolve github action permission problem --- .github/workflows/pre-test.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 12d373d..8769603 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -54,9 +54,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: build-result - path: | - ${{ github.workspace }} - !.git/ + path: . - name: 'Discord Alert - Success' if: steps.build-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 @@ -89,6 +87,10 @@ jobs: with: name: build-result path: . + - name: print-directory + run: ls -al + - name: Grant Permission in recursive + run: chmod -R 777 . - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli - id: unit-test-phase From 38411435c46c339ec68e57278cb51e28c2850477 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:37:14 +0900 Subject: [PATCH 53/68] Test/Chore: Remove jest runInBand and permission step to tear-down --- .github/workflows/pre-test.yml | 8 +++++--- package.json | 14 +++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 8769603..3fe8218 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -87,9 +87,7 @@ jobs: with: name: build-result path: . - - name: print-directory - run: ls -al - - name: Grant Permission in recursive + - name: Grant Permission to artifacts run: chmod -R 777 . - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli @@ -128,6 +126,8 @@ jobs: with: name: build-result path: . + - name: Grant Permission to artifacts + run: chmod -R 777 . - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli - id: e2e-test-phase @@ -165,6 +165,8 @@ jobs: with: name: build-result path: . + - name: Grant Permission to artifacts + run: chmod -R 777 . - id: tear-down-phase name: Test Database tear-down continue-on-error: true diff --git a/package.json b/package.json index 4f29102..c538931 100644 --- a/package.json +++ b/package.json @@ -21,16 +21,16 @@ "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", - "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest", "ci:init": "dotenv -e .ci.env -- npx prisma db push", "ci:tearDown": "dotenv -e .ci.env -- npx prisma db push --force-reset", - "ci:unit": "dotenv -e .ci.env -- jest --setupFiles jest --config ./test/jest-unit.json --runInBand", - "ci:e2e": "dotenv -e .ci.env -- jest --config ./test/jest-e2e.json --runInBand", + "ci:unit": "dotenv -e .ci.env -- jest --setupFiles jest --config ./test/jest-unit.json", + "ci:e2e": "dotenv -e .ci.env -- jest --config ./test/jest-e2e.json", "test:init": "dotenv -e .test.env -- npx prisma db push", - "test:e2e": "dotenv -e .test.env -- jest --config ./test/jest-e2e.json --runInBand", - "test:e2e:cov": "dotenv -e .test.env -- jest --config ./test/jest-e2e.json --runInBand --coverage", - "test:unit": "dotenv -e .test.env -- jest --config ./test/jest-unit.json --runInBand", - "test:unit:cov": "dotenv -e .test.env -- jest --config ./test/jest-unit.json --runInBand --coverage" + "test:e2e": "dotenv -e .test.env -- jest --config ./test/jest-e2e.json", + "test:e2e:cov": "dotenv -e .test.env -- jest --config ./test/jest-e2e.json --coverage", + "test:unit": "dotenv -e .test.env -- jest --config ./test/jest-unit.json", + "test:unit:cov": "dotenv -e .test.env -- jest --config ./test/jest-unit.json --coverage" }, "dependencies": { "@aws-sdk/client-s3": "^3.465.0", From 5017005a15a07d6cbd4a3dec8de6668f10e45112 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:44:25 +0900 Subject: [PATCH 54/68] Fix: Solve admin init concurrency problem in testing --- src/admin-init.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/admin-init.ts b/src/admin-init.ts index 1cf5b4a..f986b8a 100644 --- a/src/admin-init.ts +++ b/src/admin-init.ts @@ -20,16 +20,21 @@ export async function InitializeAdmin(app: INestApplication) { }, }); if (!findAdmin) { - // Initialize root admin - await prisma.user.create({ - data: { - nickname: 'admin', - password: bcrypt.hashSync(process.env.ADMIN_PW, 10), - email: process.env.ADMIN_EMAIL, - type: 'Admin', - }, - }); - logger.log('Admin initialized'); + try { + // Initialize root admin + await prisma.user.create({ + data: { + nickname: 'admin', + password: bcrypt.hashSync(process.env.ADMIN_PW, 10), + email: process.env.ADMIN_EMAIL, + type: 'Admin', + }, + }); + } catch (err) { + // Ignore for unit/e2e test concurrency problem + } finally { + logger.log('Admin initialized'); + } } else { logger.log('Admin already initialized'); } From 195cd9a7add5fd034851d3b6e71407c0a69af613 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:45:24 +0900 Subject: [PATCH 55/68] Fix: Solve admin init concurrency problem in testing --- src/admin-init.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/admin-init.ts b/src/admin-init.ts index f986b8a..33825b5 100644 --- a/src/admin-init.ts +++ b/src/admin-init.ts @@ -20,21 +20,17 @@ export async function InitializeAdmin(app: INestApplication) { }, }); if (!findAdmin) { - try { - // Initialize root admin - await prisma.user.create({ + // Initialize root admin + await prisma.$transaction([ + prisma.user.create({ data: { nickname: 'admin', password: bcrypt.hashSync(process.env.ADMIN_PW, 10), email: process.env.ADMIN_EMAIL, type: 'Admin', }, - }); - } catch (err) { - // Ignore for unit/e2e test concurrency problem - } finally { - logger.log('Admin initialized'); - } + }), + ]); } else { logger.log('Admin already initialized'); } From 3af4d44ca2e614e4ef269b67f96f2b735c56076f Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 01:51:39 +0900 Subject: [PATCH 56/68] Fix: Solve admin init concurrency problem in testing --- .github/workflows/pre-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 3fe8218..460f143 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -167,6 +167,8 @@ jobs: path: . - name: Grant Permission to artifacts run: chmod -R 777 . + - name: Install dotenv-cli for CI script + run: npm install -g dotenv-cli - id: tear-down-phase name: Test Database tear-down continue-on-error: true From 945d41a917747c7b431a84a3d9c8d6773a97631e Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 02:06:29 +0900 Subject: [PATCH 57/68] Fix: Fix alert message of actions --- .github/workflows/pre-test.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 460f143..e866d73 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -60,14 +60,14 @@ jobs: uses: rjstone/discord-webhook-notify@v1 with: severity: info - details: 'Unit Test Result: Success' + details: 'Build & Setup: Success' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Failed' if: steps.build-phase.outcome != 'success' uses: rjstone/discord-webhook-notify@v1 with: severity: error - details: 'Unit Test Result: Fail' + details: 'Build & Setup: Fail' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Fail check' if: steps.build-phase.outcome != 'success' @@ -165,8 +165,11 @@ jobs: with: name: build-result path: . + - name: Grant Permission to artifacts run: chmod -R 777 . + - name: Directory Check + run: ls -al - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli - id: tear-down-phase @@ -178,12 +181,12 @@ jobs: uses: rjstone/discord-webhook-notify@v1 with: severity: info - details: 'E2E Test Result: Success' + details: 'Test DB Tear down: Success' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} - name: 'Discord Alert - Fail' if: steps.tear-down-phase.outcome != 'success' uses: rjstone/discord-webhook-notify@v1 with: severity: error - details: 'E2E Test Result: Failed' + details: 'Test DB Tear down: Failed' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} From e0ddf85da6ecccb40a41e026458ee0a6e92753ac Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 02:25:18 +0900 Subject: [PATCH 58/68] Chore: Resolve github actions softlink problem --- .github/workflows/pre-test.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index e866d73..861a2d7 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -165,17 +165,14 @@ jobs: with: name: build-result path: . - - name: Grant Permission to artifacts run: chmod -R 777 . - - name: Directory Check - run: ls -al - name: Install dotenv-cli for CI script run: npm install -g dotenv-cli - id: tear-down-phase name: Test Database tear-down continue-on-error: true - run: npm run ci:tearDown + run: node node_modules/prisma/build/index.js db push --force-reset - name: 'Discord Alert - Success' if: steps.tear-down-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 From 8689ca75706ea051eea2b080287436088d9691d0 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 02:31:22 +0900 Subject: [PATCH 59/68] Chore: Resolve github actions softlink problem --- .github/workflows/pre-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 861a2d7..2fd3b54 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -172,7 +172,7 @@ jobs: - id: tear-down-phase name: Test Database tear-down continue-on-error: true - run: node node_modules/prisma/build/index.js db push --force-reset + run: dotenv -e .ci.env -- node node_modules/prisma/build/index.js db push --force-reset - name: 'Discord Alert - Success' if: steps.tear-down-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 From ae2fdf2566c65b2fbaa9e32ed3b83d21edf6add3 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Wed, 24 Jan 2024 02:50:25 +0900 Subject: [PATCH 60/68] Docs: Update readme --- README.md | 7 +- architecture-diagram-20240124.drawio | 340 +++++++++++++++++++++++++++ img/diagram.png | Bin 556332 -> 562452 bytes img/github-action-flow.png | Bin 0 -> 47071 bytes 4 files changed, 346 insertions(+), 1 deletion(-) create mode 100644 architecture-diagram-20240124.drawio create mode 100644 img/github-action-flow.png diff --git a/README.md b/README.md index 47c267e..c586afd 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ ## Contents -- [🔖Diagram](#diagram) +- [📦Diagram](#diagram) +- [📦Github Actions CI flow](#github-actions-ci-flow) - [📊Test Coverage](#test-coverage) - [🧰Technical Stack](#technical-stack) - [✅Run Application](#run-application) @@ -20,6 +21,10 @@ ![](img/diagram.png) +## Github Actions CI flow + +![](img/github-action-flow.png) + ## Frontend Repository - Author: Oseungkwon diff --git a/architecture-diagram-20240124.drawio b/architecture-diagram-20240124.drawio new file mode 100644 index 0000000..f8937be --- /dev/null +++ b/architecture-diagram-20240124.drawio @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/diagram.png b/img/diagram.png index 50d9bee0268f01f306e5cfd5dca9457550f72f63..242795b3b5f7267873045769bf2c2413a2d5eb87 100644 GIT binary patch delta 188339 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≶fS}*pxbzG#O;K`FG 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�+Z3(JRz_j9%Lh=I-$xkG_Db1)t! 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 delta 182794 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�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�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

~L(Y^?-pQav4Jz9-b+PQ;U}l*0VdGbwuvDS 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

v{R%|20knb@sW&xN-dmM>fMHmiwXM&)bBc2 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 G1^)}O#lR&1 literal 0 HcmV?d00001 From cc9eafe8818d5b52e402ca93ca9e3c61b190808d Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 11:41:26 +0900 Subject: [PATCH 61/68] Chore: Remove unnecessary Action Scripts --- .github/workflows/pre-test.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 2fd3b54..eb5405d 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -1,16 +1,10 @@ -name: CI-Unit-Test +name: Pull-Request-Pretest on: pull_request: branches: - dev - workflow_call: - inputs: - build_id: - required: true - type: number - deploy_target: - required: true - type: string + paths: + - '**.ts' run-name: Unit/E2E test of ${{ github.ref_name }} by ${{ github.actor }} jobs: build: From 8ee80ca7019206da66bb754a29d95f4b3a14ba41 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 13:44:17 +0900 Subject: [PATCH 62/68] Chore: Clean up secrets unused in CI and apply Yarn cache. Add production dockerize phase(dev -> production) --- .github/workflows/pre-test.yml | 30 +++++++--------- .github/workflows/production-dockerize.yml | 40 ++++++++++++++++++++++ 2 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/production-dockerize.yml diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index eb5405d..d1ac481 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -1,10 +1,8 @@ -name: Pull-Request-Pretest +name: CI-Pull-Request-Pretest on: pull_request: branches: - dev - paths: - - '**.ts' run-name: Unit/E2E test of ${{ github.ref_name }} by ${{ github.actor }} jobs: build: @@ -19,6 +17,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 18 + cache: yarn - name: Initialize .ci.env run: | touch .ci.env @@ -26,23 +25,17 @@ jobs: echo "ADMIN_EMAIL=${{secrets.ADMIN_EMAIL}}" >> .ci.env echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env - echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env - echo "AWS_REGION"=${{secrets.AWS_REGION}}>> .ci.env - echo "AWS_ACCESS_ID=${{secrets.AWS_ACCESS_ID}}" >> .ci.env - echo "AWS_ACCESS_SECRET=${{secrets.AWS_ACCESS_SECRET}}" >> .ci.env - echo "AWS_SQS_QUEUE=${{secrets.AWS_SQS_QUEUE}}" >> .ci.env - echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies - run: npm install --force + run: yarn install --force - name: Install dotenv-cli for CI script - run: npm install -g dotenv-cli + run: yarn global add dotenv-cli - id: build-phase name: Check Nest.js Application Build continue-on-error: true run: yarn build # Push Prisma Schema to test DB - name: Initialize Prisma Client - run: npm run ci:init + run: yarn ci:init # Preserve Artifacts for test - name: Preserve Artifacts uses: actions/upload-artifact@v4 @@ -84,11 +77,11 @@ jobs: - name: Grant Permission to artifacts run: chmod -R 777 . - name: Install dotenv-cli for CI script - run: npm install -g dotenv-cli + run: yarn global add dotenv-cli - id: unit-test-phase name: Run Unit Test continue-on-error: true - run: npm run ci:unit + run: yarn ci:unit - name: 'Discord Alert - Success' if: steps.unit-test-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 @@ -123,11 +116,11 @@ jobs: - name: Grant Permission to artifacts run: chmod -R 777 . - name: Install dotenv-cli for CI script - run: npm install -g dotenv-cli + run: yarn global add dotenv-cli - id: e2e-test-phase name: Run E2E Test continue-on-error: true - run: npm run ci:e2e + run: yarn ci:e2e - name: 'Discord Alert - Success' if: steps.e2e-test-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 @@ -162,11 +155,14 @@ jobs: - name: Grant Permission to artifacts run: chmod -R 777 . - name: Install dotenv-cli for CI script - run: npm install -g dotenv-cli + run: yarn global add dotenv-cli - id: tear-down-phase name: Test Database tear-down continue-on-error: true run: dotenv -e .ci.env -- node node_modules/prisma/build/index.js db push --force-reset + - uses: geekyeggo/delete-artifact@v4 + with: + name: build-result - name: 'Discord Alert - Success' if: steps.tear-down-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 diff --git a/.github/workflows/production-dockerize.yml b/.github/workflows/production-dockerize.yml new file mode 100644 index 0000000..a4fba25 --- /dev/null +++ b/.github/workflows/production-dockerize.yml @@ -0,0 +1,40 @@ +name: CI-Production-Dockerize +on: + push: + branches: + - production +run-name: Dockerize of production version. Triggerd by ${{github.actor}} +jobs: + dockerize: + name: Dockerize and upload + runs-on: ubuntu-latest + steps: + # Checkout repository code + - name: Repository Checkout + uses: actions/checkout@v4 + # Set Node.js version environment + - name: Node.js version 18 Environment setting + uses: actions/setup-node@v4 + with: + node-version: 18 + # Install dependencies + - name: Install Dependencies + run: npm install --force + - name: Check Build Status + run: npm run build + - name: Setup QEMU for multiplatform build + uses: docker/setup-qemu-action@v3 + - name: Setup docker buildx and set platform + uses: docker/setup-buildx-action@v3 + - name: Docker Login + uses: docker/login-action@v3 + with: + username: ${{secrets.DOCKERHUB_USERNAME}} + password: ${{secrets.DOCKERHUB_TOKEN}} + - name: Build and Push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: hoplin-dev/online-judge:latest + platforms: linux/amd64,linux/arm64 From 9303131ba6d46982e4b2e0aca95e8188b0891cba Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 13:49:13 +0900 Subject: [PATCH 63/68] Chore: Fix gh actions script --- .github/workflows/pre-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index d1ac481..c2d4b44 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -25,6 +25,7 @@ jobs: echo "ADMIN_EMAIL=${{secrets.ADMIN_EMAIL}}" >> .ci.env echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env + echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env - name: Install Node.js Dependencies run: yarn install --force - name: Install dotenv-cli for CI script From b3e2dce48ee216e5db73689c969774b1863837aa Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 13:54:22 +0900 Subject: [PATCH 64/68] Chore: Rollback pretest action script --- .github/workflows/pre-test.yml | 8 ++++++++ .github/workflows/production-dockerize.yml | 20 +++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index c2d4b44..8a5e385 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -26,6 +26,11 @@ jobs: echo "ADMIN_PW=${{secrets.ADMIN_PW}}" >> .ci.env echo "JWT_SECRET=${{secrets.JWT_SECRET}}" >> .ci.env echo "JUDGE_SERVER_ENDPOINT=${{secrets.JUDGE_SERVER_ENDPOINT}}" >> .ci.env + echo "AWS_REGION"=${{secrets.AWS_REGION}}>> .ci.env + echo "AWS_ACCESS_ID=${{secrets.AWS_ACCESS_ID}}" >> .ci.env + echo "AWS_ACCESS_SECRET=${{secrets.AWS_ACCESS_SECRET}}" >> .ci.env + echo "AWS_SQS_QUEUE=${{secrets.AWS_SQS_QUEUE}}" >> .ci.env + echo "AWS_S3_BUCKET=${{secrets.AWS_S3_BUCKET}}" >> .ci.env - name: Install Node.js Dependencies run: yarn install --force - name: Install dotenv-cli for CI script @@ -178,3 +183,6 @@ jobs: severity: error details: 'Test DB Tear down: Failed' webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Fail check' + if: steps.tear-down-phase.outcome != 'success' + run: exit1 diff --git a/.github/workflows/production-dockerize.yml b/.github/workflows/production-dockerize.yml index a4fba25..1b4a284 100644 --- a/.github/workflows/production-dockerize.yml +++ b/.github/workflows/production-dockerize.yml @@ -31,10 +31,28 @@ jobs: with: username: ${{secrets.DOCKERHUB_USERNAME}} password: ${{secrets.DOCKERHUB_TOKEN}} - - name: Build and Push + - id: build-n-push + name: Build and Push uses: docker/build-push-action@v5 with: context: . push: true tags: hoplin-dev/online-judge:latest platforms: linux/amd64,linux/arm64 + - name: 'Discord Alert - Success' + if: steps.build-n-push.outcome == 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: info + details: 'Docker Deploy Success (linux/amd64, linux/arm64)' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Discord Alert - Fail' + if: steps.build-n-push.outcome != 'success' + uses: rjstone/discord-webhook-notify@v1 + with: + severity: error + details: 'Docker Deploy Failed' + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: 'Fail check' + if: steps.build-n-push.outcome != 'success' + run: exit1 From e74e1e9c6d5ca6f98fb8f23d768f6ad79c819f80 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 14:04:15 +0900 Subject: [PATCH 65/68] Fix: Fix admin initialization to upsert transaction' --- src/admin-init.ts | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/admin-init.ts b/src/admin-init.ts index 33825b5..2d0d6b1 100644 --- a/src/admin-init.ts +++ b/src/admin-init.ts @@ -2,6 +2,7 @@ import { INestApplication, LoggerService } from '@nestjs/common'; import { PrismaService } from './prisma/prisma.service'; import { SystemLoggerService } from './system-logger/system-logger.service'; import * as bcrypt from 'bcryptjs'; +import { PrismaClient } from '@prisma/client'; export async function InitializeAdmin(app: INestApplication) { // Generate default admin account @@ -14,25 +15,21 @@ export async function InitializeAdmin(app: INestApplication) { ); throw new Error('Fail to initialize server'); } else { - const findAdmin = await prisma.user.findUnique({ - where: { - email: process.env.ADMIN_EMAIL, - }, + // Initialize root admin + await prisma.$transaction(async (tx: PrismaClient) => { + await tx.user.upsert({ + where: { + email: process.env.ADMIN_EMAIL, + }, + create: { + nickname: 'admin', + password: bcrypt.hashSync(process.env.ADMIN_PW, 10), + email: process.env.ADMIN_EMAIL, + type: 'Admin', + }, + update: {}, + }); + logger.log('Admin Initialized'); }); - if (!findAdmin) { - // Initialize root admin - await prisma.$transaction([ - prisma.user.create({ - data: { - nickname: 'admin', - password: bcrypt.hashSync(process.env.ADMIN_PW, 10), - email: process.env.ADMIN_EMAIL, - type: 'Admin', - }, - }), - ]); - } else { - logger.log('Admin already initialized'); - } } } From d95ef128c0ee0510d38c10c826e199a56b5ecd73 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 14:14:27 +0900 Subject: [PATCH 66/68] Chore: Update delete artifact action version --- .github/workflows/pre-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index 8a5e385..ab5ec7e 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -166,7 +166,7 @@ jobs: name: Test Database tear-down continue-on-error: true run: dotenv -e .ci.env -- node node_modules/prisma/build/index.js db push --force-reset - - uses: geekyeggo/delete-artifact@v4 + - uses: geekyeggo/delete-artifact@v4.1.0 with: name: build-result - name: 'Discord Alert - Success' From c282db6546c457104aaa63f489963e93f00a0425 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 14:27:28 +0900 Subject: [PATCH 67/68] Chore: Add repository level secret token --- .github/workflows/pre-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-test.yml b/.github/workflows/pre-test.yml index ab5ec7e..766e076 100644 --- a/.github/workflows/pre-test.yml +++ b/.github/workflows/pre-test.yml @@ -166,9 +166,10 @@ jobs: name: Test Database tear-down continue-on-error: true run: dotenv -e .ci.env -- node node_modules/prisma/build/index.js db push --force-reset - - uses: geekyeggo/delete-artifact@v4.1.0 + - uses: geekyeggo/delete-artifact@v4 with: name: build-result + token: ${{secrets.TOKEN}} - name: 'Discord Alert - Success' if: steps.tear-down-phase.outcome == 'success' uses: rjstone/discord-webhook-notify@v1 From 5053eda63087e9997cc7d45fa1c644ef760a45f2 Mon Sep 17 00:00:00 2001 From: J-hoplin1 Date: Sat, 27 Jan 2024 14:32:27 +0900 Subject: [PATCH 68/68] Feat: Resolve transaction problem --- src/admin-init.ts | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/admin-init.ts b/src/admin-init.ts index 2d0d6b1..ae7a58d 100644 --- a/src/admin-init.ts +++ b/src/admin-init.ts @@ -16,20 +16,25 @@ export async function InitializeAdmin(app: INestApplication) { throw new Error('Fail to initialize server'); } else { // Initialize root admin - await prisma.$transaction(async (tx: PrismaClient) => { - await tx.user.upsert({ - where: { - email: process.env.ADMIN_EMAIL, - }, - create: { - nickname: 'admin', - password: bcrypt.hashSync(process.env.ADMIN_PW, 10), - email: process.env.ADMIN_EMAIL, - type: 'Admin', - }, - update: {}, + try { + await prisma.$transaction(async (tx: PrismaClient) => { + await tx.user.upsert({ + where: { + email: process.env.ADMIN_EMAIL, + }, + create: { + nickname: 'admin', + password: bcrypt.hashSync(process.env.ADMIN_PW, 10), + email: process.env.ADMIN_EMAIL, + type: 'Admin', + }, + update: {}, + }); + logger.log('Admin Initialized'); }); - logger.log('Admin Initialized'); - }); + } catch (err) { + } finally { + return true; + } } }