From 42c3a72804d66ca6c0b6f15b30441d328dfcefb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Wed, 21 Feb 2024 00:41:31 +0100 Subject: [PATCH] DB => Update model for include correction informations --- .../migration.sql | 2 ++ ExpressAPI/prisma/schema.prisma | 2 ++ ExpressAPI/src/helpers/DatabaseHelper.ts | 12 +++++++----- ExpressAPI/src/types/DatabaseTypes.ts | 8 ++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 ExpressAPI/prisma/migrations/20240208132018_add_correction_to_assignment/migration.sql diff --git a/ExpressAPI/prisma/migrations/20240208132018_add_correction_to_assignment/migration.sql b/ExpressAPI/prisma/migrations/20240208132018_add_correction_to_assignment/migration.sql new file mode 100644 index 0000000..cf8fa02 --- /dev/null +++ b/ExpressAPI/prisma/migrations/20240208132018_add_correction_to_assignment/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `Exercise` ADD COLUMN `correctionCommit` JSON NULL; diff --git a/ExpressAPI/prisma/schema.prisma b/ExpressAPI/prisma/schema.prisma index a68226e..f603673 100644 --- a/ExpressAPI/prisma/schema.prisma +++ b/ExpressAPI/prisma/schema.prisma @@ -50,6 +50,8 @@ model Exercise { gitlabLastInfo Json @db.Json gitlabLastInfoDate DateTime + correctionCommit Json? @db.Json + assignment Assignment @relation(fields: [assignmentName], references: [name], onDelete: NoAction, onUpdate: Cascade) members User[] diff --git a/ExpressAPI/src/helpers/DatabaseHelper.ts b/ExpressAPI/src/helpers/DatabaseHelper.ts index 89ec9c7..9dc14bb 100644 --- a/ExpressAPI/src/helpers/DatabaseHelper.ts +++ b/ExpressAPI/src/helpers/DatabaseHelper.ts @@ -1,7 +1,9 @@ -import { PrismaClient } from '@prisma/client'; -import logger from '../shared/logging/WinstonLogger'; -import UserQueryExtension from './Prisma/Extensions/UserQueryExtension'; -import UserResultExtension from './Prisma/Extensions/UserResultExtension'; +import { PrismaClient } from '@prisma/client'; +import logger from '../shared/logging/WinstonLogger'; +import UserQueryExtension from './Prisma/Extensions/UserQueryExtension'; +import UserResultExtension from './Prisma/Extensions/UserResultExtension'; +import AssignmentResultExtension from './Prisma/Extensions/AssignmentResultExtension'; +import ExerciseResultExtension from './Prisma/Extensions/ExerciseResultExtension'; const prisma = new PrismaClient({ @@ -29,7 +31,7 @@ prisma.$on('warn', e => logger.warn(`Prisma => ${ e.message }`)); prisma.$on('error', e => logger.error(`Prisma => ${ e.message }`)); -const db = prisma.$extends(UserQueryExtension).$extends(UserResultExtension); +const db = prisma.$extends(UserQueryExtension).$extends(UserResultExtension).$extends(AssignmentResultExtension).$extends(ExerciseResultExtension); export default db; \ No newline at end of file diff --git a/ExpressAPI/src/types/DatabaseTypes.ts b/ExpressAPI/src/types/DatabaseTypes.ts index 632b05b..ae95e3b 100644 --- a/ExpressAPI/src/types/DatabaseTypes.ts +++ b/ExpressAPI/src/types/DatabaseTypes.ts @@ -31,6 +31,10 @@ export type User = Prisma.UserGetPayload<typeof userBase> & { isAdmin: boolean gitlabProfile: LazyVal<GitlabUser> } -export type Assignment = Prisma.AssignmentGetPayload<typeof assignmentBase> -export type Exercise = Prisma.ExerciseGetPayload<typeof exerciseBase> +export type Exercise = Prisma.ExerciseGetPayload<typeof exerciseBase> & { + isCorrection: boolean +} +export type Assignment = Prisma.AssignmentGetPayload<typeof assignmentBase> & { + corrections: LazyVal<Exercise> +} export type Result = Prisma.ResultGetPayload<typeof resultBase> \ No newline at end of file -- GitLab