From ed57c9f001c5bde678a37f4af6b40ffc8b1f312a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Mon, 3 Jul 2023 16:47:13 +0200
Subject: [PATCH] Update shared

---
 .../commander/enonce/EnonceCreateCommand.ts   |  2 +-
 NodeApp/src/managers/GitlabManager.ts         | 19 ++++++++++++-------
 NodeApp/src/shared                            |  2 +-
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
index ec43c65..262dcc3 100644
--- a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
+++ b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
@@ -5,8 +5,8 @@ import GitlabManager      from '../../managers/GitlabManager';
 import SessionManager     from '../../managers/SessionManager';
 import GitlabUser         from '../../shared/types/Gitlab/GitlabUser';
 import DojoBackendManager from '../../managers/DojoBackendManager';
-import Toolbox            from '../../shared/Toolbox';
 import Enonce             from '../../types/Enonce';
+import Toolbox            from '../../shared/helpers/Toolbox';
 
 
 class EnonceCreateCommand extends CommanderCommand {
diff --git a/NodeApp/src/managers/GitlabManager.ts b/NodeApp/src/managers/GitlabManager.ts
index bb12aeb..70007fb 100644
--- a/NodeApp/src/managers/GitlabManager.ts
+++ b/NodeApp/src/managers/GitlabManager.ts
@@ -4,6 +4,7 @@ import axios           from 'axios';
 import Config          from '../config/Config';
 import ora             from 'ora';
 import GitlabUser      from '../shared/types/Gitlab/GitlabUser';
+import GitlabRoutes    from '../shared/types/Gitlab/GitlabRoutes';
 
 
 class GitlabManager {
@@ -21,6 +22,10 @@ class GitlabManager {
         return GitlabManager._instance;
     }
 
+    private getApiUrl(route: GitlabRoutes): string {
+        return `${ Config.gitlab.apiURL }${ route }`;
+    }
+
     get isLogged(): boolean {
         return this._token !== null;
     }
@@ -114,14 +119,14 @@ class GitlabManager {
     }
 
     public getNotificationSettings() {
-        return axios.get(`${ Config.gitlab.apiURL }/notification_settings`);
+        return axios.get(this.getApiUrl(GitlabRoutes.NOTIFICATION_SETTINGS));
     }
 
     public setNotificationSettings(newSettings: any) {
-        return axios.put(`${ Config.gitlab.apiURL }/notification_settings`, { params: new URLSearchParams(newSettings) });
+        return axios.put(this.getApiUrl(GitlabRoutes.NOTIFICATION_SETTINGS), { params: new URLSearchParams(newSettings) });
     }
 
-    private async getGitlabUser(paramsToSearch: Array<string | number>, paramName: string, verbose: boolean = false, verboseIndent: number = 0): Promise<Array<GitlabUser | undefined>> {
+    private async getGitlabUsers(paramsToSearch: Array<string | number>, paramName: string, verbose: boolean = false, verboseIndent: number = 0): Promise<Array<GitlabUser | undefined>> {
         try {
             return await Promise.all(paramsToSearch.map(async param => {
                 const spinner: ora.Ora = ora({
@@ -133,7 +138,7 @@ class GitlabManager {
                 }
                 const params: any = {};
                 params[paramName] = param;
-                const user = await axios.get<Array<GitlabUser>>(`${ Config.gitlab.apiURL }/users`, { params: params });
+                const user = await axios.get<Array<GitlabUser>>(this.getApiUrl(GitlabRoutes.USERS_GET), { params: params });
 
                 if ( user.data[0] ) {
                     const gitlabUser = user.data[0];
@@ -154,15 +159,15 @@ class GitlabManager {
     }
 
     public async getUsersById(ids: Array<number>, verbose: boolean = false, verboseIndent: number = 0): Promise<Array<GitlabUser | undefined>> {
-        return await this.getGitlabUser(ids, 'id', verbose, verboseIndent);
+        return await this.getGitlabUsers(ids, 'id', verbose, verboseIndent);
     }
 
     public async getUsersByUsername(usernames: Array<string>, verbose: boolean = false, verboseIndent: number = 0): Promise<Array<GitlabUser | undefined>> {
-        return await this.getGitlabUser(usernames, 'search', verbose, verboseIndent);
+        return await this.getGitlabUsers(usernames, 'search', verbose, verboseIndent);
     }
 
     public async getRepository(repoId: number): Promise<any> {
-        return await axios.get(`${ Config.gitlab.apiURL }/projects/${ repoId }`);
+        return await axios.get(this.getApiUrl(GitlabRoutes.REPOSITORY_GET).replace('{{id}}', repoId.toString()));
     }
 
     public async fetchMembers(options: any): Promise<Array<GitlabUser> | false> {
diff --git a/NodeApp/src/shared b/NodeApp/src/shared
index 3d61366..aa038f2 160000
--- a/NodeApp/src/shared
+++ b/NodeApp/src/shared
@@ -1 +1 @@
-Subproject commit 3d6136619804a215db7488756a7bea4f5ff56513
+Subproject commit aa038f29e4595c631084935ea5e3e4846ceea1b1
-- 
GitLab