From c05d958d15f03565f16b2fac5abd24347b05cf0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Wed, 28 Feb 2024 22:37:23 +0100 Subject: [PATCH] Sonar => Resolve issues --- ExpressAPI/.idea/DojoBackendAPI.iml | 3 +++ ExpressAPI/src/express/API.ts | 2 +- ExpressAPI/src/routes/AssignmentRoutes.ts | 2 -- ExpressAPI/src/routes/ExerciseRoutes.ts | 25 ++++++++++++++--------- ExpressAPI/src/shared | 2 +- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/ExpressAPI/.idea/DojoBackendAPI.iml b/ExpressAPI/.idea/DojoBackendAPI.iml index f94b989..565eef9 100644 --- a/ExpressAPI/.idea/DojoBackendAPI.iml +++ b/ExpressAPI/.idea/DojoBackendAPI.iml @@ -15,4 +15,7 @@ <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> + <component name="SonarLintModuleSettings"> + <option name="uniqueId" value="2749ea0f-74a8-42c0-9fd6-d6a4b4cd75a4" /> + </component> </module> \ No newline at end of file diff --git a/ExpressAPI/src/express/API.ts b/ExpressAPI/src/express/API.ts index a55896a..201faa2 100644 --- a/ExpressAPI/src/express/API.ts +++ b/ExpressAPI/src/express/API.ts @@ -38,7 +38,7 @@ class API implements WorkerTask { private initBaseMiddlewares() { this.backend.use(multer({ - limits: { fieldSize: 100 * 1024 * 1024 } + limits: { fieldSize: 15 * 1024 * 1024 } }).none()); //Used for extract params from body with format "form-data", The none is for say that we do not wait a file in params this.backend.use(morganMiddleware); //Log API accesses this.backend.use(helmet()); //Help to secure express, https://helmetjs.github.io/ diff --git a/ExpressAPI/src/routes/AssignmentRoutes.ts b/ExpressAPI/src/routes/AssignmentRoutes.ts index 5b607ab..2366880 100644 --- a/ExpressAPI/src/routes/AssignmentRoutes.ts +++ b/ExpressAPI/src/routes/AssignmentRoutes.ts @@ -201,8 +201,6 @@ class AssignmentRoutes implements RoutesManager { logger.error(error); res.status(StatusCodes.INTERNAL_SERVER_ERROR).send(); } - - return; }; } diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts index ff7cad6..3d8c3e1 100644 --- a/ExpressAPI/src/routes/ExerciseRoutes.ts +++ b/ExpressAPI/src/routes/ExerciseRoutes.ts @@ -119,11 +119,11 @@ class ExerciseRoutes implements RoutesManager { suffix++; } else { req.session.sendResponse(res, StatusCodes.INTERNAL_SERVER_ERROR, {}, 'Unknown gitlab error while forking repository', DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR); - return; + return undefined; } } else { req.session.sendResponse(res, StatusCodes.INTERNAL_SERVER_ERROR, {}, 'Unknown error while forking repository', DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR); - return; + return undefined; } } } while ( suffix < Config.exercise.maxSameName ); @@ -131,7 +131,7 @@ class ExerciseRoutes implements RoutesManager { if ( suffix >= Config.exercise.maxSameName ) { logger.error('Max exercise with same name reached'); req.session.sendResponse(res, StatusCodes.INSUFFICIENT_SPACE_ON_RESOURCE, undefined, 'Max exercise per assignment reached', DojoStatusCode.MAX_EXERCISE_PER_ASSIGNMENT_REACHED); - return; + return undefined; } return repository; @@ -139,13 +139,14 @@ class ExerciseRoutes implements RoutesManager { private async createExercise(req: express.Request, res: express.Response) { const params: { members: Array<GitlabUser> } = req.body; - params.members = [ await req.session.profile.gitlabProfile!.value, ...params.members ].removeObjectDuplicates(gitlabUser => gitlabUser.id); + params.members = [ await req.session.profile.gitlabProfile.value, ...params.members ].removeObjectDuplicates(gitlabUser => gitlabUser.id); const assignment: Assignment = req.boundParams.assignment!; const reachedLimitUsers: Array<GitlabUser> = await this.checkExerciseLimit(assignment, params.members); if ( reachedLimitUsers.length > 0 ) { - return req.session.sendResponse(res, StatusCodes.INSUFFICIENT_SPACE_ON_RESOURCE, reachedLimitUsers, 'Max exercise per assignment reached', DojoStatusCode.MAX_EXERCISE_PER_ASSIGNMENT_REACHED); + req.session.sendResponse(res, StatusCodes.INSUFFICIENT_SPACE_ON_RESOURCE, reachedLimitUsers, 'Max exercise per assignment reached', DojoStatusCode.MAX_EXERCISE_PER_ASSIGNMENT_REACHED); + return; } @@ -168,13 +169,15 @@ class ExerciseRoutes implements RoutesManager { await GitlabManager.addRepositoryBadge(repository.id, Config.gitlab.badges.pipeline.link, Config.gitlab.badges.pipeline.imageUrl, 'Pipeline Status'); } catch ( error ) { - return GlobalHelper.repositoryCreationError('Repo params error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + GlobalHelper.repositoryCreationError('Repo params error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + return; } try { await GitlabManager.updateFile(repository.id, '.gitlab-ci.yml', fs.readFileSync(path.join(__dirname, '../../assets/exercise_gitlab_ci.yml'), 'base64'), 'Add .gitlab-ci.yml (DO NOT MODIFY THIS FILE)'); } catch ( error ) { - return GlobalHelper.repositoryCreationError('CI file update error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + GlobalHelper.repositoryCreationError('CI file update error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + return; } try { @@ -215,9 +218,11 @@ class ExerciseRoutes implements RoutesManager { } }) as unknown as Exercise; - return req.session.sendResponse(res, StatusCodes.OK, exercise); + req.session.sendResponse(res, StatusCodes.OK, exercise); + return; } catch ( error ) { - return GlobalHelper.repositoryCreationError('DB error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + await GlobalHelper.repositoryCreationError('DB error', error, req, res, DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository); + return; } } @@ -235,7 +240,7 @@ class ExerciseRoutes implements RoutesManager { return file; })); - const dojoAssignmentFile: AssignmentFile = JSON5.parse(atob(assignmentHjsonFile.content)) as AssignmentFile; + const dojoAssignmentFile: AssignmentFile = JSON5.parse(atob(assignmentHjsonFile.content)); const immutablePaths = dojoAssignmentFile.immutable.map(fileDescriptor => fileDescriptor.path); diff --git a/ExpressAPI/src/shared b/ExpressAPI/src/shared index da76a3b..6214acb 160000 --- a/ExpressAPI/src/shared +++ b/ExpressAPI/src/shared @@ -1 +1 @@ -Subproject commit da76a3b35471ec1e9862ae3b57f5905a909058b5 +Subproject commit 6214acbd799d9eed3f5b6840858f8d5ecda82c86 -- GitLab