diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts index 2bef23ac06f69d353e0e5fac255634fc0607343b..05d9f2e849dc10eab2445b8885c0b474774a7d43 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 b9881afdc585592e76856b81a58ab81efe602d8d..a0d2fa81f11851c98380a14c16ac4a25877e9716 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 9a1da89cd7b402d4cf776d85f6976a668ed7ba7b..ade585291e20343b0a272d716bf1d9d508da8f02 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', }