From b02aa6eb79b62eabfe48bc022270e8df40c11e0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Thu, 2 Nov 2023 19:24:10 +0100
Subject: [PATCH] DojoBackendManager => Assignment/Exercise creation error
 enhancement

---
 NodeApp/src/managers/DojoBackendManager.ts | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 12cc16b..42bda3f 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -9,6 +9,7 @@ import DojoBackendResponse   from '../shared/types/Dojo/DojoBackendResponse';
 import Exercise              from '../sharedByClients/models/Exercise';
 import GitlabToken           from '../shared/types/Gitlab/GitlabToken';
 import User                  from '../sharedByClients/models/User';
+import DojoStatusCode        from '../shared/types/Dojo/DojoStatusCode';
 
 
 class DojoBackendManager {
@@ -106,7 +107,11 @@ class DojoBackendManager {
                         if ( error.response.status === StatusCodes.CONFLICT ) {
                             spinner.fail(`The assignment name is already used. Please choose another one.`);
                         } else {
-                            spinner.fail(`Assignment creation error: ${ error.response.statusText }`);
+                            if ( (error.response.data as DojoBackendResponse<any>).code === DojoStatusCode.ASSIGNMENT_CREATION_GITLAB_ERROR ) {
+                                spinner.fail(`Assignment creation error: An unknown error occurred while creating the assignment on Gitlab. Please try again later or contact an administrator.`);
+                            } else {
+                                spinner.fail(`Assignment creation error: An unknown error occurred while creating the assignment on Dojo server. Please try again later or contact an administrator.`);
+                            }
                         }
                     }
                 } else {
@@ -140,7 +145,11 @@ class DojoBackendManager {
                         if ( error.response.status === StatusCodes.CONFLICT ) {
                             spinner.fail(`You've already reached the max number of exercise of this assignment.`);
                         } else {
-                            spinner.fail(`Exercise creation error: ${ error.response.statusText }`);
+                            if ( (error.response.data as DojoBackendResponse<any>).code === DojoStatusCode.EXERCISE_CREATION_GITLAB_ERROR ) {
+                                spinner.fail(`Exercise creation error: An unknown error occurred while creating the exercise on Gitlab. Please try again later or contact an administrator.`);
+                            } else {
+                                spinner.fail(`Exercise creation error: An unknown error occurred while creating the exercise on Dojo server. Please try again later or contact an administrator.`);
+                            }
                         }
                     }
                 } else {
-- 
GitLab