From 4ab3c15032765b97828a6d30c2f3267ef0fef60d Mon Sep 17 00:00:00 2001
From: Joel von der Weid <joel.von-der-weid@hesge.ch>
Date: Mon, 22 Apr 2024 15:41:13 +0200
Subject: [PATCH] Add sonar language utilities

---
 managers/SharedSonarManager.ts | 17 +++++++++++++++++
 types/Sonar/SonarRoute.ts      |  3 ++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/managers/SharedSonarManager.ts b/managers/SharedSonarManager.ts
index 5169202..00f623d 100644
--- a/managers/SharedSonarManager.ts
+++ b/managers/SharedSonarManager.ts
@@ -1,6 +1,7 @@
 import axios        from 'axios';
 import https        from 'https';
 import SharedConfig from '../config/SharedConfig';
+import { Language } from '@prisma/client';
 
 
 class SharedSonarManager {
@@ -22,6 +23,22 @@ class SharedSonarManager {
             return false;
         }
     }
+
+    /**
+     * Map a language name to the equivalent language ID in Sonar
+     * Most language have the same name, so by default the same name is returned, even for languages that doesn't exist in sonar.
+     * @param language
+     */
+    mapLanguage(language: Language): string {
+        switch (language) {
+            case Language.csharp:
+                return "cs";
+            case Language.python:
+                return "py";
+            default:
+                return language;
+        }
+    }
 }
 
 export default new SharedSonarManager();
\ No newline at end of file
diff --git a/types/Sonar/SonarRoute.ts b/types/Sonar/SonarRoute.ts
index ecfab74..eb59406 100644
--- a/types/Sonar/SonarRoute.ts
+++ b/types/Sonar/SonarRoute.ts
@@ -1,6 +1,7 @@
 enum SonarRoute {
     SET_PAT               = '/api/alm_integrations/set_pat',
-    PROJECT_CREATE_GITLAB = '/api/alm_integrations/import_gitlab_project'
+    PROJECT_CREATE_GITLAB = '/api/alm_integrations/import_gitlab_project',
+    GET_LANGUAGES         = '/api/languages/list'
 }
 
 export default SonarRoute;
\ No newline at end of file
-- 
GitLab