Skip to content
Snippets Groups Projects
Commit d4ded065 authored by joel.vonderwe's avatar joel.vonderwe
Browse files

Check sonar languages

parent 6adcc7d7
Branches
No related tags found
No related merge requests found
...@@ -8,6 +8,7 @@ import GitlabManager from '../../../managers/GitlabManager'; ...@@ -8,6 +8,7 @@ import GitlabManager from '../../../managers/GitlabManager';
import DojoBackendManager from '../../../managers/DojoBackendManager'; import DojoBackendManager from '../../../managers/DojoBackendManager';
import Toolbox from '../../../shared/helpers/Toolbox'; import Toolbox from '../../../shared/helpers/Toolbox';
import SharedConfig from '../../../shared/config/SharedConfig'; import SharedConfig from '../../../shared/config/SharedConfig';
import SharedSonarManager from '../../../shared/managers/SharedSonarManager';
class AssignmentCreateCommand extends CommanderCommand { class AssignmentCreateCommand extends CommanderCommand {
...@@ -48,13 +49,15 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -48,13 +49,15 @@ class AssignmentCreateCommand extends CommanderCommand {
return; return;
} }
const assignmentGetSonarSpinner: ora.Ora = ora('Checking server sonar status').start(); if (options.sonar) {
sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false); const assignmentGetSonarSpinner: ora.Ora = ora('Checking server sonar status').start();
if (sonar && !(await DojoBackendManager.isSonarEnabled())) { sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false);
assignmentGetSonarSpinner.fail(`Sonar is currently not supported by the server. Disable sonar integration or try again later.`); if ( sonar && !(await DojoBackendManager.isSonarEnabled()) ) {
return; 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`);
} }
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) ) {
...@@ -64,6 +67,7 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -64,6 +67,7 @@ class AssignmentCreateCommand extends CommanderCommand {
assignmentGetSpinner.succeed(`Assignment name "${ options.name }" is available`); assignmentGetSpinner.succeed(`Assignment name "${ options.name }" is available`);
const languagesSpinner: ora.Ora = ora('Checking language support').start(); const languagesSpinner: ora.Ora = ora('Checking language support').start();
// Dojo languages
const languages = await DojoBackendManager.getLanguages(); const languages = await DojoBackendManager.getLanguages();
if ( !languages.includes(options.language) ) { if ( !languages.includes(options.language) ) {
languagesSpinner.fail(`Language "${ options.language }" is not supported. Choose a supported language or "other"`); languagesSpinner.fail(`Language "${ options.language }" is not supported. Choose a supported language or "other"`);
...@@ -73,6 +77,15 @@ class AssignmentCreateCommand extends CommanderCommand { ...@@ -73,6 +77,15 @@ class AssignmentCreateCommand extends CommanderCommand {
} }
return; return;
} }
// SonarQube languages
if (sonar) {
const sonarLang = await DojoBackendManager.getSonarLanguages();
if (!sonarLang.includes(SharedSonarManager.mapLanguage(options.language))) {
languagesSpinner.fail(`Language "${ options.language }" is not supported with Sonar. Choose a supported language or disable sonar`);
return;
}
}
languagesSpinner.succeed(`Language "${ options.language }" is supported`); languagesSpinner.succeed(`Language "${ options.language }" is supported`);
if ( options.template ) { if ( options.template ) {
......
...@@ -243,6 +243,11 @@ class DojoBackendManager { ...@@ -243,6 +243,11 @@ class DojoBackendManager {
return sonar.data.data.sonarEnabled; return sonar.data.data.sonarEnabled;
} }
public async getSonarLanguages() {
const sonar = await axios.get<DojoBackendResponse<{ languages: string[] }>>(this.getApiUrl(ApiRoute.SONAR));
return sonar.data.data.languages;
}
public async getLanguages() { public async getLanguages() {
const resp = await axios.get<DojoBackendResponse<string[]>>(this.getApiUrl(ApiRoute.LANGUAGES)); const resp = await axios.get<DojoBackendResponse<string[]>>(this.getApiUrl(ApiRoute.LANGUAGES));
return resp.data.data; return resp.data.data;
......
Subproject commit e97f044e6fd030775df32581680b1caa9a359628 Subproject commit 76e13d9d08d52d31ece9a58645ac113c51132c71
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment