From 6607858180da1c27f87f5f078e45091d45fe8caf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Wed, 1 Nov 2023 17:55:30 +0100
Subject: [PATCH] DojoStatusCode => Add code for refresh token failure

---
 managers/SharedGitlabManager.ts | 24 ++++++++++++++----------
 types/Dojo/DojoStatusCode.ts    |  1 +
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/managers/SharedGitlabManager.ts b/managers/SharedGitlabManager.ts
index 68ff699..aca93d0 100644
--- a/managers/SharedGitlabManager.ts
+++ b/managers/SharedGitlabManager.ts
@@ -11,16 +11,20 @@ class GitlabManager {
     }
 
     async getTokens(codeOrRefresh: string, isRefresh: boolean = false, clientSecret: string = ''): Promise<GitlabToken> {
-        const response = await axios.post<GitlabToken>(SharedConfig.login.gitlab.url.token, {
-            client_id    : SharedConfig.login.gitlab.client.id,
-            client_secret: clientSecret,
-            grant_type   : isRefresh ? 'refresh_token' : 'authorization_code',
-            refresh_token: codeOrRefresh,
-            code         : codeOrRefresh,
-            redirect_uri : SharedConfig.login.gitlab.url.redirect
-        });
-
-        return response.data;
+        try {
+            const response = await axios.post<GitlabToken>(SharedConfig.login.gitlab.url.token, {
+                client_id    : SharedConfig.login.gitlab.client.id,
+                client_secret: clientSecret,
+                grant_type   : isRefresh ? 'refresh_token' : 'authorization_code',
+                refresh_token: codeOrRefresh,
+                code         : codeOrRefresh,
+                redirect_uri : SharedConfig.login.gitlab.url.redirect
+            });
+
+            return response.data;
+        } catch ( error ) {
+            throw error;
+        }
     }
 
     async getRepositoryPipelines(repoId: number, branch: string = 'main'): Promise<Array<GitlabPipeline>> {
diff --git a/types/Dojo/DojoStatusCode.ts b/types/Dojo/DojoStatusCode.ts
index 160476c..4b97a17 100644
--- a/types/Dojo/DojoStatusCode.ts
+++ b/types/Dojo/DojoStatusCode.ts
@@ -1,5 +1,6 @@
 enum DojoStatusCode {
     LOGIN_FAILED                       = 1,
+    REFRESH_TOKENS_FAILED              = 2,
     CLIENT_NOT_SUPPORTED               = 100,
     CLIENT_VERSION_NOT_SUPPORTED       = 110,
     ASSIGNMENT_PUBLISH_NO_PIPELINE     = 200,
-- 
GitLab