Skip to content
Snippets Groups Projects
Commit e0fbaa86 authored by kelly.nguyen's avatar kelly.nguyen
Browse files

add command list and delete for assignment

parent d4dd88c0
No related branches found
No related tags found
No related merge requests found
Pipeline #29948 failed
...@@ -5,6 +5,8 @@ import AssignmentUnpublishCommand from './subcommands/AssignmentUnpublishComman ...@@ -5,6 +5,8 @@ import AssignmentUnpublishCommand from './subcommands/AssignmentUnpublishComman
import AssignmentCheckCommand from './subcommands/AssignmentCheckCommand'; import AssignmentCheckCommand from './subcommands/AssignmentCheckCommand';
import AssignmentRunCommand from './subcommands/AssignmentRunCommand'; import AssignmentRunCommand from './subcommands/AssignmentRunCommand';
import AssignmentCorrectionCommand from './subcommands/correction/AssignmentCorrectionCommand'; import AssignmentCorrectionCommand from './subcommands/correction/AssignmentCorrectionCommand';
import AssignmentDeleteCommand from './subcommands/AssignmentDeleteCommand';
import AssignmentListCommand from './subcommands/AssignmentListCommand';
class AssignmentCommand extends CommanderCommand { class AssignmentCommand extends CommanderCommand {
...@@ -22,6 +24,8 @@ class AssignmentCommand extends CommanderCommand { ...@@ -22,6 +24,8 @@ class AssignmentCommand extends CommanderCommand {
AssignmentPublishCommand.registerOnCommand(this.command); AssignmentPublishCommand.registerOnCommand(this.command);
AssignmentUnpublishCommand.registerOnCommand(this.command); AssignmentUnpublishCommand.registerOnCommand(this.command);
AssignmentCorrectionCommand.registerOnCommand(this.command); AssignmentCorrectionCommand.registerOnCommand(this.command);
AssignmentDeleteCommand.registerOnCommand(this.command);
AssignmentListCommand.registerOnCommand(this.command);
} }
protected async commandAction(): Promise<void> { } protected async commandAction(): Promise<void> { }
......
import chalk from "chalk";
import CommanderCommand from "../../CommanderCommand";
import DojoBackendManager from "../../../managers/DojoBackendManager";
import ora from "ora";
import Assignment from "../../../sharedByClients/models/Assignment";
class AssignmentDeleteCommand extends CommanderCommand {
protected commandName : string = 'delete';
protected defineCommand(): void {
this.command
.description('delete an assignment')
.argument('<assignmentName>', 'name of the assignment')
.option('-v, --verbose', 'verbose mode - display principal container output in live')
.action(this.commandAction.bind(this));
}
protected async commandAction(assignmentName : string): Promise<void> {
let assign : Assignment[] = [];
{
console.log(chalk.cyan('Please wait while we are retrieving the users...'));
assign = await DojoBackendManager.delAssignment(assignmentName);
const oraInfo = (message: string) => {
ora({
text: message,
indent: 4
}).start().info();
};
console.log(assign)
// assign.forEach(a => {
// oraInfo(`${chalk.magenta('ID :')} ${a.gitlabId}`);
// oraInfo(`${chalk.magenta('Assignment :')} ${a.name}`);
// a.staff.forEach( s => {
// oraInfo(`${chalk.magenta('Info :')} ${s.gitlabLastInfo}`);
// oraInfo(`${chalk.magenta('Staff :')} ${s.gitlabUsername}`);
// })
// console.log()
// })
// assign.exercises.forEach( ex => {
// oraInfo(`${chalk.magenta('Exercice :')} ${ex.assignmentName}`);
// })
}
}
}
export default new AssignmentDeleteCommand();
\ No newline at end of file
import chalk from "chalk";
import CommanderCommand from "../../CommanderCommand";
import DojoBackendManager from "../../../managers/DojoBackendManager";
import ora from "ora";
import User from "../../../sharedByClients/models/User";
import SessionManager from "../../../managers/SessionManager";
class AssignmentListCommand extends CommanderCommand {
protected commandName : string = 'list';
protected defineCommand(): void {
this.command
.description('list all the user')
.argument('<userId>', 'id of the user')
.action(this.commandAction.bind(this));
}
protected async commandAction(id : string): Promise<void> {
let user : User;
{
console.log(chalk.cyan('Please wait while we are retrieving the assignments...'));
if ( !await SessionManager.testSession(true, null) ) {
return;
}
user = await DojoBackendManager.getUserAssignments(id);
if ( !user ) {
return;
}
const oraInfo = (message: string) => {
ora({
text: message,
indent: 4
}).start().info();
};
oraInfo(`${chalk.magenta('Id :')} ${user.id}`);
oraInfo(`${chalk.magenta('Name :')} ${user.gitlabUsername}`);
oraInfo(`${chalk.magenta('Role :')} ${user.role}`);
console.log();
user.assignments?.forEach(assign => {
const d = new Date(assign.gitlabCreationInfo.last_activity_at).toDateString();
oraInfo(`${chalk.magenta(`Assignment ${assign.gitlabId}: `)} ${assign.name}`);
oraInfo(`${chalk.magenta(`Last Activity : `)} ${d}`);
oraInfo(`${chalk.magenta(`Link :`)} ${assign.gitlabLink}`);
});
}
}
}
export default new AssignmentListCommand();
\ No newline at end of file
...@@ -29,7 +29,6 @@ class DojoBackendManager { ...@@ -29,7 +29,6 @@ class DojoBackendManager {
} }
} }
public async refreshTokens(refreshToken: string): Promise<GitlabToken> { public async refreshTokens(refreshToken: string): Promise<GitlabToken> {
return (await axios.post<DojoBackendResponse<GitlabToken>>(this.getApiUrl(ApiRoute.REFRESH_TOKENS), { return (await axios.post<DojoBackendResponse<GitlabToken>>(this.getApiUrl(ApiRoute.REFRESH_TOKENS), {
refreshToken: refreshToken refreshToken: refreshToken
...@@ -235,6 +234,14 @@ class DojoBackendManager { ...@@ -235,6 +234,14 @@ class DojoBackendManager {
return false; return false;
} }
} }
public async getUserAssignments(id : string) : Promise<User> {
return (await axios.get<DojoBackendResponse<User>>(this.getApiUrl(ApiRoute.USER_ASSIGNMENTS).replace('{{userId}}', id))).data.data;
}
public async delAssignment(assignmentName : string) : Promise<Assignment[]> {
return (await axios.get<DojoBackendResponse<Assignment[]>>(this.getApiUrl(ApiRoute.ASSIGNMENT_DEL).replace('{{assignmentNameOrUrl}}', encodeURIComponent(assignmentName)))).data.data;
}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment