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

LocalConfig => Store apiToken related to server address

parent 326365d6
No related branches found
No related tags found
No related merge requests found
Pipeline #26543 passed
import * as fs from 'fs';
import logger from '../shared/logging/WinstonLogger';
import SessionManager from '../managers/SessionManager';
import Config from './Config';
import LocalConfigKeys from '../types/LocalConfigKeys';
import GitlabManager from '../managers/GitlabManager';
import JSON5 from 'json5';
import ClientsSharedConfig from '../sharedByClients/config/ClientsSharedConfig';
class LocalConfig {
......@@ -24,23 +24,43 @@ class LocalConfig {
try {
this._config = JSON5.parse(fs.readFileSync(this.configPath).toString());
SessionManager.token = this._config.apiToken;
GitlabManager.token = this._config.gitlabPersonalToken;
} catch ( error ) { }
if ( LocalConfigKeys.API_TOKEN_ENV in this._config && ClientsSharedConfig.apiURL in this._config[LocalConfigKeys.API_TOKEN_ENV] ) {
SessionManager.token = this._config[LocalConfigKeys.API_TOKEN_ENV][ClientsSharedConfig.apiURL];
} else {
SessionManager.token = this._config[LocalConfigKeys.API_TOKEN];
}
GitlabManager.token = this._config[LocalConfigKeys.GITLAB_PERSONAL_TOKEN];
} catch ( error ) {
console.log(error);
}
}
updateConfig(key: LocalConfigKeys, value: any) {
if ( (this._config as any)[key] === value ) {
let previousValue = (this._config as any)[key];
if ( key === LocalConfigKeys.API_TOKEN && (!(LocalConfigKeys.API_TOKEN_ENV in this._config) || !(ClientsSharedConfig.apiURL in this._config[LocalConfigKeys.API_TOKEN_ENV])) ) {
previousValue = null;
}
if ( previousValue === value ) {
return;
}
if ( key === LocalConfigKeys.API_TOKEN ) {
delete (this._config as any)[LocalConfigKeys.API_TOKEN];
if ( !(LocalConfigKeys.API_TOKEN_ENV in this._config) ) {
(this._config as any)[LocalConfigKeys.API_TOKEN_ENV] = {};
}
(this._config as any)[LocalConfigKeys.API_TOKEN_ENV][ClientsSharedConfig.apiURL] = value;
} else {
(this._config as any)[key] = value;
}
try {
fs.writeFileSync(this.configPath, JSON5.stringify(this._config, null, 4));
} catch ( error ) {
logger.error(error);
}
} catch ( error ) { }
}
}
......
enum LocalConfigKeys {
API_TOKEN = 'apiToken',
API_TOKEN_ENV = 'apiTokenEnv',
GITLAB_PERSONAL_TOKEN = 'gitlabPersonalToken',
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment