From c574fcaf9abd344df06d4f88873d8cd21c6b7483 Mon Sep 17 00:00:00 2001
From: Joel von der Weid <joel.von-der-weid@hesge.ch>
Date: Mon, 22 Apr 2024 15:42:50 +0200
Subject: [PATCH] Add languages to sonar route

---
 ExpressAPI/src/managers/SonarManager.ts | 16 +++++++++++++---
 ExpressAPI/src/routes/BaseRoutes.ts     |  4 +++-
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ExpressAPI/src/managers/SonarManager.ts b/ExpressAPI/src/managers/SonarManager.ts
index 3bfdc9e..3a5808c 100644
--- a/ExpressAPI/src/managers/SonarManager.ts
+++ b/ExpressAPI/src/managers/SonarManager.ts
@@ -34,9 +34,7 @@ class SonarManager {
     }
 
     private async executePostRequest<T>(url: string, data?: FormData) {
-        console.log("dhdidid");
         await this.setPAT(); // Always set PAT to be sure it has been set
-        console.log("hehe",btoa(SharedConfig.sonar.token));
 
         return (await this.instance.post<T>(url, data, {
             headers: {
@@ -45,14 +43,26 @@ class SonarManager {
         })).data;
     }
 
+    private async executeGetRequest<T>(url: string) {
+        return (await this.instance.get<T>(url, {
+            headers: {
+                Authorization: `Basic ${ btoa(SharedConfig.sonar.token + ":") }`
+            }
+        })).data;
+    }
+
     async createProjectFromGitlab(projectId: number) {
         const formData = new FormData();
         formData.append('almSetting', 'dojo');
         formData.append('gitlabProjectId', projectId.toString());
-        console.log(formData);
 
         return await this.executePostRequest<SonarProjectCreation>(this.getApiUrl(SonarRoute.PROJECT_CREATE_GITLAB), formData)
     }
+
+    async getLanguages() {
+        const resp = await this.executeGetRequest<{ languages: { key: string, name: string }[]}>(this.getApiUrl(SonarRoute.GET_LANGUAGES))
+        return resp.languages.map(l => l.key)
+    }
 }
 
 export default new SonarManager();
\ No newline at end of file
diff --git a/ExpressAPI/src/routes/BaseRoutes.ts b/ExpressAPI/src/routes/BaseRoutes.ts
index 3f60383..786f3c5 100644
--- a/ExpressAPI/src/routes/BaseRoutes.ts
+++ b/ExpressAPI/src/routes/BaseRoutes.ts
@@ -6,6 +6,7 @@ import Config                      from '../config/Config';
 import SharedConfig    from '../shared/config/SharedConfig';
 import GlobalHelper    from '../helpers/GlobalHelper';
 import SharedSonarManager from '../shared/managers/SharedSonarManager';
+import SonarManager from '../managers/SonarManager';
 
 
 class BaseRoutes implements RoutesManager {
@@ -38,7 +39,8 @@ class BaseRoutes implements RoutesManager {
 
     private async sonar(req: express.Request, res: express.Response) {
         const data = {
-            sonarEnabled: await SharedSonarManager.isSonarSupported()
+            sonarEnabled: await SharedSonarManager.isSonarSupported(),
+            languages: await SonarManager.getLanguages()
         };
         return req.session.sendResponse(res, StatusCodes.OK, data);
     }
-- 
GitLab