From 3d9bfb03711e5cd06fc28d445dd723b4b024fe79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Sat, 13 Jan 2024 02:06:02 +0100 Subject: [PATCH] ConfigFiles => Centralize config files instances --- NodeApp/src/config/ConfigFiles.ts | 9 +++++++++ NodeApp/src/config/LocalConfigFile.ts | 4 +++- NodeApp/src/managers/SessionManager.ts | 18 +++++++----------- 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 NodeApp/src/config/ConfigFiles.ts diff --git a/NodeApp/src/config/ConfigFiles.ts b/NodeApp/src/config/ConfigFiles.ts new file mode 100644 index 0000000..3bce1b7 --- /dev/null +++ b/NodeApp/src/config/ConfigFiles.ts @@ -0,0 +1,9 @@ +import LocalConfigFile from './LocalConfigFile'; +import Config from './Config'; + + +const sessionConfigFile = new LocalConfigFile(Config.localConfig.sessionFile); +const stateConfigFile = new LocalConfigFile(Config.localConfig.stateFile); + + +export { sessionConfigFile, stateConfigFile }; \ No newline at end of file diff --git a/NodeApp/src/config/LocalConfigFile.ts b/NodeApp/src/config/LocalConfigFile.ts index c69c89c..ecc0530 100644 --- a/NodeApp/src/config/LocalConfigFile.ts +++ b/NodeApp/src/config/LocalConfigFile.ts @@ -4,7 +4,9 @@ import JSON5 from 'json5'; class LocalConfigFile { - constructor(private filename: string) {} + constructor(private filename: string) { + this.loadConfig(); + } private get configPath(): string { return `${ Config.localConfig.folder }/${ this.filename }`; diff --git a/NodeApp/src/managers/SessionManager.ts b/NodeApp/src/managers/SessionManager.ts index 18f9179..4f1d25d 100644 --- a/NodeApp/src/managers/SessionManager.ts +++ b/NodeApp/src/managers/SessionManager.ts @@ -1,6 +1,5 @@ import * as jwt from 'jsonwebtoken'; import User from '../sharedByClients/models/User'; -import LocalConfigFile from '../config/LocalConfigFile'; import LocalConfigKeys from '../types/LocalConfigKeys'; import axios, { HttpStatusCode } from 'axios'; import HttpManager from './HttpManager'; @@ -20,6 +19,7 @@ import SharedGitlabManager from '../shared/managers/SharedGitlabManager'; import GitlabManager from './GitlabManager'; import GitlabToken from '../shared/types/Gitlab/GitlabToken'; import open from 'open'; +import { sessionConfigFile } from '../config/ConfigFiles'; class LoginServer { @@ -75,8 +75,6 @@ class LoginServer { class SessionManager { - private configFile: LocalConfigFile = new LocalConfigFile(Config.localConfig.sessionFile); - public profile: User | undefined = undefined; get isLogged(): boolean { @@ -84,7 +82,7 @@ class SessionManager { } get apiToken(): string { - const apisToken = this.configFile.getParam(LocalConfigKeys.APIS_TOKEN) as null | { [key: string]: string }; + const apisToken = sessionConfigFile.getParam(LocalConfigKeys.APIS_TOKEN) as null | { [key: string]: string }; if ( apisToken !== null && ClientsSharedConfig.apiURL in apisToken ) { return apisToken[ClientsSharedConfig.apiURL]; @@ -94,12 +92,12 @@ class SessionManager { } set apiToken(token: string) { - let apisToken = this.configFile.getParam(LocalConfigKeys.APIS_TOKEN) as null | { [key: string]: string }; + let apisToken = sessionConfigFile.getParam(LocalConfigKeys.APIS_TOKEN) as null | { [key: string]: string }; if ( apisToken === null ) { apisToken = {}; } apisToken[ClientsSharedConfig.apiURL] = token; - this.configFile.setParam(LocalConfigKeys.APIS_TOKEN, apisToken); + sessionConfigFile.setParam(LocalConfigKeys.APIS_TOKEN, apisToken); try { const payload = jwt.decode(token); @@ -113,16 +111,14 @@ class SessionManager { } get gitlabCredentials(): DojoGitlabCredentials { - return this.configFile.getParam(LocalConfigKeys.GITLAB) as DojoGitlabCredentials; + return sessionConfigFile.getParam(LocalConfigKeys.GITLAB) as DojoGitlabCredentials; } set gitlabCredentials(credentials: DojoGitlabCredentials) { - this.configFile.setParam(LocalConfigKeys.GITLAB, credentials); + sessionConfigFile.setParam(LocalConfigKeys.GITLAB, credentials); } - constructor() { - this.configFile.loadConfig(); - } + constructor() { } private async getGitlabCodeFromHeadlessEnvironment(): Promise<string> { const indent: string = ' '; -- GitLab