From f29e88834301de61909122fa739b0ebba706b562 Mon Sep 17 00:00:00 2001 From: "kelly.nguyen" <kelly.nguyen@etu.hesge.ch> Date: Thu, 23 May 2024 21:42:54 +0200 Subject: [PATCH] add route to move a repository --- ExpressAPI/src/managers/GitlabManager.ts | 13 ++++++++++++- ExpressAPI/src/routes/AssignmentRoutes.ts | 4 +++- ExpressAPI/src/shared/types/Gitlab/GitlabRoute.ts | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts index 2bef23a..05d9f2e 100644 --- a/ExpressAPI/src/managers/GitlabManager.ts +++ b/ExpressAPI/src/managers/GitlabManager.ts @@ -264,12 +264,23 @@ class GitlabManager { async removeRepositoryMember(repoId : number, userId : number, skipSubresources: boolean = false, unassignIssuables : boolean = false) { const response = await axios.delete<GitlabMember>(this.getApiUrl(GitlabRoute.REPOSITORY_MEMBER_DELETE).replace('{{id}}', String(repoId)).replace('{{user_id}}', String(userId)), { data: { - user_id : userId, + user_id : userId, + skip_subresources : skipSubresources, + unassign_issuables : unassignIssuables } }); return response.data; } + + async moveRepositorySubGroup(repoId : number, newRepoId : number) { + const response = await axios.put(this.getApiUrl(GitlabRoute.REPOSITORY_MOVE_SUBGROUP).replace('{{id}}', String(repoId)), { + namespace : newRepoId + } + ); + + return response.data; + } } diff --git a/ExpressAPI/src/routes/AssignmentRoutes.ts b/ExpressAPI/src/routes/AssignmentRoutes.ts index b9881af..a0d2fa8 100644 --- a/ExpressAPI/src/routes/AssignmentRoutes.ts +++ b/ExpressAPI/src/routes/AssignmentRoutes.ts @@ -1,7 +1,7 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import * as ExpressValidator from 'express-validator'; -import { NON_AUTHORITATIVE_INFORMATION, StatusCodes } from 'http-status-codes'; +import { StatusCodes } from 'http-status-codes'; import RoutesManager from '../express/RoutesManager'; import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware'; import SecurityMiddleware from '../middlewares/SecurityMiddleware'; @@ -215,7 +215,9 @@ class AssignmentRoutes implements RoutesManager { private async deleteAssignment(req : express.Request, res : express.Response) { const nameAssignment = req.params.assignmentNameOrUrl; + // recup l'id du repo en question await GitlabManager.removeRepositoryMember(13893, 627); + await GitlabManager.moveRepositorySubGroup(13893, 14193); await db.assignment.update({ where : { diff --git a/ExpressAPI/src/shared/types/Gitlab/GitlabRoute.ts b/ExpressAPI/src/shared/types/Gitlab/GitlabRoute.ts index 9a1da89..ade5852 100644 --- a/ExpressAPI/src/shared/types/Gitlab/GitlabRoute.ts +++ b/ExpressAPI/src/shared/types/Gitlab/GitlabRoute.ts @@ -17,6 +17,7 @@ enum GitlabRoute { REPOSITORY_FILE = '/projects/{{id}}/repository/files/{{filePath}}', REPOSITORY_PIPELINES = '/projects/{{id}}/pipelines', REPOSITORY_MEMBER_DELETE = '/projects/{{id}}/members/{{user_id}}', + REPOSITORY_MOVE_SUBGROUP = '/projects/{{id}}/transfer', } -- GitLab