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

Check sonar languages

parent 6adcc7d7
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@ import GitlabManager from '../../../managers/GitlabManager';
import DojoBackendManager from '../../../managers/DojoBackendManager';
import Toolbox from '../../../shared/helpers/Toolbox';
import SharedConfig from '../../../shared/config/SharedConfig';
import SharedSonarManager from '../../../shared/managers/SharedSonarManager';
class AssignmentCreateCommand extends CommanderCommand {
......@@ -48,13 +49,15 @@ class AssignmentCreateCommand extends CommanderCommand {
return;
}
const assignmentGetSonarSpinner: ora.Ora = ora('Checking server sonar status').start();
sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false);
if (sonar && !(await DojoBackendManager.isSonarEnabled())) {
assignmentGetSonarSpinner.fail(`Sonar is currently not supported by the server. Disable sonar integration or try again later.`);
return;
if (options.sonar) {
const assignmentGetSonarSpinner: ora.Ora = ora('Checking server sonar status').start();
sonar = (SharedConfig.sonar.enabled ? options.sonar ?? false : false);
if ( 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`);
}
assignmentGetSonarSpinner.succeed(`Sonar is supported by the server`);
const assignmentGetSpinner: ora.Ora = ora('Checking assignment name availability').start();
if ( await DojoBackendManager.getAssignment(options.name) ) {
......@@ -64,6 +67,7 @@ class AssignmentCreateCommand extends CommanderCommand {
assignmentGetSpinner.succeed(`Assignment name "${ options.name }" is available`);
const languagesSpinner: ora.Ora = ora('Checking language support').start();
// Dojo languages
const languages = await DojoBackendManager.getLanguages();
if ( !languages.includes(options.language) ) {
languagesSpinner.fail(`Language "${ options.language }" is not supported. Choose a supported language or "other"`);
......@@ -73,6 +77,15 @@ class AssignmentCreateCommand extends CommanderCommand {
}
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`);
if ( options.template ) {
......
......@@ -243,6 +243,11 @@ class DojoBackendManager {
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() {
const resp = await axios.get<DojoBackendResponse<string[]>>(this.getApiUrl(ApiRoute.LANGUAGES));
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