From 026cd6d1569987dc89081d0cd81ccf05a83d87de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <git@minelli.swiss>
Date: Tue, 25 Jun 2024 03:13:14 +0200
Subject: [PATCH] Tags => Code integration

---
 helpers/Dojo/DojoBackendHelper.ts       |  6 +++++-
 models/{TagSubmit.ts => TagProposal.ts} |  6 ++++--
 types/Dojo/ApiRoute.ts                  | 10 +++++-----
 3 files changed, 14 insertions(+), 8 deletions(-)
 rename models/{TagSubmit.ts => TagProposal.ts} (65%)

diff --git a/helpers/Dojo/DojoBackendHelper.ts b/helpers/Dojo/DojoBackendHelper.ts
index 7475376..025c387 100644
--- a/helpers/Dojo/DojoBackendHelper.ts
+++ b/helpers/Dojo/DojoBackendHelper.ts
@@ -3,7 +3,7 @@ import ClientsSharedConfig from '../../config/ClientsSharedConfig.js';
 
 
 class DojoBackendHelper {
-    public getApiUrl(route: ApiRoute, options?: Partial<{ assignmentNameOrUrl: string, exerciseIdOrUrl: string, gitlabProjectId: string }>): string {
+    public getApiUrl(route: ApiRoute, options?: Partial<{ assignmentNameOrUrl: string, exerciseIdOrUrl: string, gitlabProjectId: string, tagName: string }>): string {
         let url = `${ ClientsSharedConfig.apiURL }${ route }`;
 
         if ( options ) {
@@ -18,6 +18,10 @@ class DojoBackendHelper {
             if ( options.gitlabProjectId ) {
                 url = url.replace('{{gitlabProjectId}}', encodeURIComponent(options.gitlabProjectId));
             }
+
+            if ( options.tagName ) {
+                url = url.replace('{{tagName}}', encodeURIComponent(options.tagName));
+            }
         }
 
         return url;
diff --git a/models/TagSubmit.ts b/models/TagProposal.ts
similarity index 65%
rename from models/TagSubmit.ts
rename to models/TagProposal.ts
index 241ff1c..94c3c8c 100644
--- a/models/TagSubmit.ts
+++ b/models/TagProposal.ts
@@ -1,7 +1,9 @@
-interface TagSubmit {
+interface TagProposal {
     name: string;
     type: 'Language' | 'Framework' | 'Theme' | 'UserDefined';
     state: 'PendingApproval' | 'Declined' | 'Approved';
+    details: string;
 }
 
-export default TagSubmit;
+
+export default TagProposal;
diff --git a/types/Dojo/ApiRoute.ts b/types/Dojo/ApiRoute.ts
index b966d11..9d5b40f 100644
--- a/types/Dojo/ApiRoute.ts
+++ b/types/Dojo/ApiRoute.ts
@@ -11,11 +11,11 @@ enum ApiRoute {
     ASSIGNMENT_CORRECTION_UPDATE_DELETE = '/assignments/{{assignmentNameOrUrl}}/corrections/{{exerciseIdOrUrl}}',
     EXERCISE_CREATE                     = '/assignments/{{assignmentNameOrUrl}}/exercises',
     EXERCISE_ASSIGNMENT                 = '/exercises/{{exerciseIdOrUrl}}/assignment',
-    EXERCISE_RESULTS                    = '/exercises/{{exerciseIdOrUrl}}/results'
-    ADD_TAG                      = '/tags',
-    DELETE_TAG                   = '/tags/{{tageName}}',
-    PROPOSE_TAG                  = '/tags/proposals/{{tagState}}',
-    //ANSWER_TAG_PROPOSAL          = '/tags/proposals/{{tagProposalName}}'
+    EXERCISE_RESULTS                    = '/exercises/{{exerciseIdOrUrl}}/results',
+    TAG_CREATE                          = '/tags',
+    TAG_DELETE                          = '/tags/{{tagName}}',
+    TAG_PROPOSAL_GET_CREATE             = '/tags/proposals',
+    TAG_PROPOSAL_UPDATE                 = '/tags/proposals/{{tagName}}',
 }
 
 
-- 
GitLab