Skip to content
Snippets Groups Projects
Commit f7ecffe5 authored by vincent.steinman's avatar vincent.steinman Committed by michael.minelli
Browse files

migration

parent 9c66346c
No related branches found
No related tags found
No related merge requests found
-- CreateTable
CREATE TABLE `Tag` (
`name` CHAR(36) NOT NULL,
`type` ENUM('LANGUAGE', 'FRAMEWORK', 'THEME', 'USERDEFINED') NOT NULL,
PRIMARY KEY (`name`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- This is an empty migration.
\ No newline at end of file
-- This is an empty migration.
\ No newline at end of file
-- This is an empty migration.
\ No newline at end of file
...@@ -4,7 +4,7 @@ generator client { ...@@ -4,7 +4,7 @@ generator client {
datasource db { datasource db {
provider = "mysql" provider = "mysql"
url = env("mysql://root:9buz7f312479g6234f1gnioubervw79b8z@localhost:59231/dojo") url = env("DATABASE_URL")
} }
enum UserRole { enum UserRole {
...@@ -13,6 +13,13 @@ enum UserRole { ...@@ -13,6 +13,13 @@ enum UserRole {
ADMIN ADMIN
} }
enum Type{
LANGUAGE
FRAMEWORK
THEME
USERDEFINED
}
model User { model User {
id Int @id /// The user's id is the same as their gitlab id id Int @id /// The user's id is the same as their gitlab id
name String? name String?
...@@ -75,5 +82,5 @@ model Result { ...@@ -75,5 +82,5 @@ model Result {
model Tag { model Tag {
name String @id @db.Char(36) name String @id @db.Char(36)
type Json @db.Json type Type
} }
\ No newline at end of file
...@@ -49,39 +49,25 @@ class TagRoutes implements RoutesManager { ...@@ -49,39 +49,25 @@ class TagRoutes implements RoutesManager {
} }
private async addTag(req: express.Request, res: express.Response) { private async addTag(req: express.Request, res: express.Response) {
let name = req.body.name
let type = req.body.type
//TODO this
db.exercise.upsert({
where : { id: name },
update: {},
create: {
id : name,
type : type,
}
}
)
} }
private async deleteTag(req: express.Request, res: express.Response) { private async deleteTag(req: express.Request, res: express.Response) {
} }
private async getSubmittedTag(req: express.Request, res: express.Response) { private async getSubmittedTag(req: express.Request, res: express.Response) {
const repoTree: Array<GitlabTreeFile> = await GitlabManager.getRepositoryTree(req.boundParams.exercise!.assignment.gitlabId);
let assignmentHjsonFile!: GitlabFile;
const immutableFiles: Array<GitlabFile> = await Promise.all(Config.assignment.baseFiles.map(async (baseFile: string) => {
const file = await GitlabManager.getFile(req.boundParams.exercise!.assignment.gitlabId, baseFile);
if ( baseFile === Config.assignment.filename ) {
assignmentHjsonFile = file;
}
return file;
}));
const dojoAssignmentFile: AssignmentFile = JSON5.parse(atob(assignmentHjsonFile.content)) as AssignmentFile;
const immutablePaths = dojoAssignmentFile.immutable.map(fileDescriptor => fileDescriptor.path);
await Promise.all(repoTree.map(async gitlabTreeFile => {
if ( gitlabTreeFile.type == GitlabTreeFileType.BLOB ) {
for ( const immutablePath of immutablePaths ) {
if ( gitlabTreeFile.path.startsWith(immutablePath) ) {
immutableFiles.push(await GitlabManager.getFile(req.boundParams.exercise!.assignment.gitlabId, gitlabTreeFile.path));
break;
}
}
}
}));
return req.session.sendResponse(res, StatusCodes.OK, { return req.session.sendResponse(res, StatusCodes.OK, {
assignment : (req.boundParams.exercise as Exercise).assignment, assignment : (req.boundParams.exercise as Exercise).assignment,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment