Skip to content
Snippets Groups Projects
Commit 5c1d6fef authored by joel.vonderwe's avatar joel.vonderwe Committed by michael.minelli
Browse files

Check sonar on assignment creation

parent 64884d05
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -19,6 +19,7 @@ class AssignmentCreateCommand extends CommanderCommand {
private members!: Array<Gitlab.UserSchema> | undefined; private members!: Array<Gitlab.UserSchema> | undefined;
private templateIdOrNamespace: string | null = null; private templateIdOrNamespace: string | null = null;
private assignment!: Assignment; private assignment!: Assignment;
private sonar: boolean = false;
protected defineCommand() { protected defineCommand() {
this.command this.command
...@@ -45,6 +46,14 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -45,6 +46,14 @@ class AssignmentCreateCommand extends CommanderCommand {
throw new Error(); throw new Error();
} }
const assignmentGetSonarSpinner: ora.Ora = ora('Checking server sonar status').start();
this.sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false);
if ( this.sonar && !(await DojoBackendManager.isSonarEnabled()) ) {
assignmentGetSonarSpinner.fail(`Sonar is currently not supported by the server. Disable sonar integration or try again later.`);
return;
}
assignmentGetSonarSpinner.succeed(`Sonar is supported by the server`);
const assignmentGetSpinner: ora.Ora = ora('Checking assignment name availability').start(); const assignmentGetSpinner: ora.Ora = ora('Checking assignment name availability').start();
if ( await DojoBackendManager.getAssignment(options.name) ) { if ( await DojoBackendManager.getAssignment(options.name) ) {
assignmentGetSpinner.fail(`Assignment name "${ options.name }" is already taken. Please choose another one.`); assignmentGetSpinner.fail(`Assignment name "${ options.name }" is already taken. Please choose another one.`);
...@@ -68,9 +77,7 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -68,9 +77,7 @@ class AssignmentCreateCommand extends CommanderCommand {
private async createAssignment(options: CommandOptions) { private async createAssignment(options: CommandOptions) {
console.log(TextStyle.BLOCK('Please wait while we are creating the assignment (approximately 10 seconds)...')); console.log(TextStyle.BLOCK('Please wait while we are creating the assignment (approximately 10 seconds)...'));
const sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false); this.assignment = await DojoBackendManager.createAssignment(options.name, this.members!, this.templateIdOrNamespace, this.sonar);
this.assignment = await DojoBackendManager.createAssignment(options.name, this.members!, this.templateIdOrNamespace, sonar);
const oraInfo = (message: string) => { const oraInfo = (message: string) => {
ora({ ora({
......
...@@ -258,7 +258,7 @@ class DojoBackendManager { ...@@ -258,7 +258,7 @@ class DojoBackendManager {
const response = await axios.post<DojoBackendResponse<Assignment>>(DojoBackendHelper.getApiUrl(ApiRoute.ASSIGNMENT_CREATE), Object.assign({ const response = await axios.post<DojoBackendResponse<Assignment>>(DojoBackendHelper.getApiUrl(ApiRoute.ASSIGNMENT_CREATE), Object.assign({
name : name, name : name,
members: JSON.stringify(members), members: JSON.stringify(members),
sonar : sonar useSonar : sonar
}, templateIdOrNamespace ? { template: templateIdOrNamespace } : {})); }, templateIdOrNamespace ? { template: templateIdOrNamespace } : {}));
if ( verbose ) { if ( verbose ) {
...@@ -374,6 +374,11 @@ class DojoBackendManager { ...@@ -374,6 +374,11 @@ class DojoBackendManager {
} }
} }
public async isSonarEnabled() {
const sonar = await axios.get<DojoBackendResponse<{ sonarEnabled: boolean }>>(this.getApiUrl(ApiRoute.SONAR));
return sonar.data.data.sonarEnabled;
}
public async createTag(name: string, type: string, verbose: boolean = true): Promise<Tag | undefined> { public async createTag(name: string, type: string, verbose: boolean = true): Promise<Tag | undefined> {
const spinner: ora.Ora = ora('Creating tag...'); const spinner: ora.Ora = ora('Creating tag...');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment