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