From b5e22978946c2ba93af2cb25f264a76585d3609f Mon Sep 17 00:00:00 2001
From: "kelly.nguyen" <kelly.nguyen@etu.hesge.ch>
Date: Thu, 23 May 2024 01:38:43 +0200
Subject: [PATCH] add delete assignment command

---
 .../commander/assignment/AssignmentCommand.ts |  2 ++
 .../subcommands/AssignmentDeleteCommand.ts    | 32 +++++++++++++++++++
 NodeApp/src/managers/DojoBackendManager.ts    |  6 ++--
 3 files changed, 37 insertions(+), 3 deletions(-)
 create mode 100644 NodeApp/src/commander/assignment/subcommands/AssignmentDeleteCommand.ts

diff --git a/NodeApp/src/commander/assignment/AssignmentCommand.ts b/NodeApp/src/commander/assignment/AssignmentCommand.ts
index 95fd404..7f54789 100644
--- a/NodeApp/src/commander/assignment/AssignmentCommand.ts
+++ b/NodeApp/src/commander/assignment/AssignmentCommand.ts
@@ -4,6 +4,7 @@ import AssignmentPublishCommand    from './subcommands/AssignmentPublishCommand'
 import AssignmentUnpublishCommand  from './subcommands/AssignmentUnpublishCommand';
 import AssignmentCheckCommand      from './subcommands/AssignmentCheckCommand';
 import AssignmentRunCommand        from './subcommands/AssignmentRunCommand';
+import AssignmentDeleteCommand from './subcommands/AssignmentDeleteCommand';
 // import AssignmentCorrectionCommand from './subcommands/correction/AssignmentCorrectionCommand';
 
 
@@ -21,6 +22,7 @@ class AssignmentCommand extends CommanderCommand {
         AssignmentRunCommand.registerOnCommand(this.command);
         AssignmentPublishCommand.registerOnCommand(this.command);
         AssignmentUnpublishCommand.registerOnCommand(this.command);
+        AssignmentDeleteCommand.registerOnCommand(this.command);
         // AssignmentCorrectionCommand.registerOnCommand(this.command);
     }
 
diff --git a/NodeApp/src/commander/assignment/subcommands/AssignmentDeleteCommand.ts b/NodeApp/src/commander/assignment/subcommands/AssignmentDeleteCommand.ts
new file mode 100644
index 0000000..62f8cd4
--- /dev/null
+++ b/NodeApp/src/commander/assignment/subcommands/AssignmentDeleteCommand.ts
@@ -0,0 +1,32 @@
+import CommanderCommand  from '../../CommanderCommand';
+import DojoBackendManager from '../../../managers/DojoBackendManager';
+import AccessesHelper from '../../../helpers/AccessesHelper';
+// import GitlabManager from '../../../managers/GitlabManager';
+// import ExerciseRunHelper from '../../../helpers/Dojo/ExerciseRunHelper';
+// import ora from 'ora';
+
+
+class AssignmentDeleteCommand extends CommanderCommand {
+     protected commandName: string = 'delete';
+     
+     protected defineCommand() {
+          this.command
+          .description('delete an assignment')
+          .arguments('<name>')
+          // .argument('-n, --name <name>', 'name of the assignment')
+          .action(this.commandAction.bind(this));
+     }
+     
+     protected async commandAction(name : string): Promise<void> {
+          {
+               if (!await AccessesHelper.checkTeachingStaff()) {
+                    return;
+               }
+               const tmp = await DojoBackendManager.delAssignment(name);
+               console.log(tmp);
+          }
+     }
+}
+
+
+export default new AssignmentDeleteCommand();
\ No newline at end of file
diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index c2faab9..db889b7 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -54,9 +54,9 @@ class DojoBackendManager {
         });
         
     }
-    
-    public async delAssignment() : Promise<Assignment[]> {
-        return (await axios.get<DojoBackendResponse<Assignment[]>>(this.getApiUrl(ApiRoute.ASSIGNMENT_DEL))).data.data;
+
+    public async delAssignment(nameOrUrl : string) : Promise<Assignment> {
+        return (await axios.patch<DojoBackendResponse<Assignment>>(this.getApiUrl(ApiRoute.ASSIGNMENT_DEL).replace('{{assignmentNameOrUrl}}', nameOrUrl))).data.data;
     }
     
     public async checkTemplateAccess(idOrNamespace: string, verbose: boolean = true): Promise<boolean> {
-- 
GitLab