Skip to content
Snippets Groups Projects
Commit 3ad24d2d authored by michael.minelli's avatar michael.minelli
Browse files

Config => Add exercice resultsFolder and default values on all vars

parent 93802f99
No related branches found
No related tags found
No related merge requests found
import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility';
class Config { class Config {
public readonly api: { public readonly api: {
port: number port: number
...@@ -20,7 +23,7 @@ class Config { ...@@ -20,7 +23,7 @@ class Config {
}; };
public exercice: { public exercice: {
maxSameName: number; default: { description: string; visibility: string; }; maxSameName: number; resultsFolder: string; default: { description: string; visibility: string; };
}; };
public readonly userPasswordLength: number; public readonly userPasswordLength: number;
...@@ -28,59 +31,58 @@ class Config { ...@@ -28,59 +31,58 @@ class Config {
constructor() { constructor() {
this.api = { this.api = {
port: Number(process.env.API_PORT) port: Number(process.env.API_PORT || 30992)
}; };
this.jwtConfig = { this.jwtConfig = {
secret : process.env.JWT_SECRET_KEY, secret : process.env.JWT_SECRET_KEY || '',
expiresIn: Number(process.env.SESSION_TIMEOUT) expiresIn: Number(process.env.SESSION_TIMEOUT || 0)
}; };
this.permissions = { this.permissions = {
teachingStaff: JSON.parse(process.env.ROLES_WITH_TEACHING_STAFF_PERMISSIONS) teachingStaff: JSON.parse(process.env.ROLES_WITH_TEACHING_STAFF_PERMISSIONS || '[]')
}; };
this.gitlab = { this.gitlab = {
apiURL : process.env.GITLAB_API_URL, apiURL : process.env.GITLAB_API_URL || '',
urls : JSON.parse(process.env.GITLAB_URLS || '[]'), urls : JSON.parse(process.env.GITLAB_URLS || '[]'),
account: { account: {
id : Number(process.env.GITLAB_DOJO_ACCOUNT_ID), id : Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0),
username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME, username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '',
token : process.env.GITLAB_DOJO_ACCOUNT_TOKEN token : process.env.GITLAB_DOJO_ACCOUNT_TOKEN || ''
}, },
group : { group : {
root : Number(process.env.GITLAB_GROUP_ROOT_ID), root : Number(process.env.GITLAB_GROUP_ROOT_ID || 0),
templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID), templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0),
enonces : Number(process.env.GITLAB_GROUP_ENONCES_ID), enonces : Number(process.env.GITLAB_GROUP_ENONCES_ID || 0),
exercices: Number(process.env.GITLAB_GROUP_EXERCICES_ID) exercices: Number(process.env.GITLAB_GROUP_EXERCICES_ID || 0)
} }
}; };
this.enonce = { this.enonce = {
default : { default : {
description : process.env.ENONCE_DEFAULT_DESCRIPTION, description : process.env.ENONCE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '',
initReadme : process.env.ENONCE_DEFAULT_INIT_README.toBoolean(), initReadme : process.env.ENONCE_DEFAULT_INIT_README?.toBoolean() ?? false,
sharedRunnersEnabled: process.env.ENONCE_DEFAULT_SHARED_RUNNERS_ENABLED.toBoolean(), sharedRunnersEnabled: process.env.ENONCE_DEFAULT_SHARED_RUNNERS_ENABLED?.toBoolean() ?? true,
visibility : process.env.ENONCE_DEFAULT_VISIBILITY, visibility : process.env.ENONCE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE,
wikiEnabled : process.env.ENONCE_DEFAULT_WIKI_ENABLED.toBoolean(), wikiEnabled : process.env.ENONCE_DEFAULT_WIKI_ENABLED?.toBoolean() ?? false,
template : process.env.ENONCE_DEFAULT_TEMPLATE.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token) template : process.env.ENONCE_DEFAULT_TEMPLATE?.replace('{{USERNAME}}', this.gitlab.account.username).replace('{{TOKEN}}', this.gitlab.account.token) ?? ''
}, },
baseFiles: JSON.parse(process.env.ENONCE_BASE_FILES || '[]'), baseFiles: JSON.parse(process.env.ENONCE_BASE_FILES || '[]'),
filename : process.env.ENONCE_FILENAME || '' filename : process.env.ENONCE_FILENAME || ''
}; };
this.exercice = { this.exercice = {
maxSameName: Number(process.env.EXERCICE_MAX_SAME_NAME), maxSameName : Number(process.env.EXERCICE_MAX_SAME_NAME || 0),
resultsFolder: process.env.EXERCICE_RESULTS_FOLDER ?? '', //Do not use convertWithEnvVars() because it is used in the exercice creation and muste be interpreted at exercice runtime
default : { default : {
description: process.env.EXERCICE_DEFAULT_DESCRIPTION, description: process.env.EXERCICE_DEFAULT_DESCRIPTION?.convertWithEnvVars() ?? '',
visibility : process.env.EXERCICE_DEFAULT_VISIBILITY visibility : process.env.EXERCICE_DEFAULT_VISIBILITY || GitlabVisibility.PRIVATE
} }
}; };
this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH); this.userPasswordLength = Number(process.env.USER_PASSWORD_LENGTH || 0);
this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS); this.userPasswordSaltRounds = Number(process.env.USER_PASSWORD_SALT_ROUNDS || 10);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment