From 4409a6fec88fa21399b673bc97a0892d3074a1bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Tue, 28 Mar 2023 04:08:07 +0200 Subject: [PATCH] Minor refactoring --- src/{ => Client}/Client.ts | 8 ++++---- src/{ => Client}/ClientSessionManager.ts | 26 ++++++++++++++++++------ src/{ => Client}/ClientStatus.ts | 0 src/main.ts | 4 ++-- 4 files changed, 26 insertions(+), 12 deletions(-) rename src/{ => Client}/Client.ts (98%) rename src/{ => Client}/ClientSessionManager.ts (78%) rename src/{ => Client}/ClientStatus.ts (100%) diff --git a/src/Client.ts b/src/Client/Client.ts similarity index 98% rename from src/Client.ts rename to src/Client/Client.ts index c20ba8c..b92001c 100644 --- a/src/Client.ts +++ b/src/Client/Client.ts @@ -1,9 +1,9 @@ import EventEmitter from "events"; import ClientStatus from "./ClientStatus"; -import {Job} from "./Job"; -import Logger from "./Logger"; -import PersistentPromise from "./PersistentPromise"; -import {SmppSession} from "./SmppSession"; +import {Job} from "../Job"; +import Logger from "../Logger"; +import PersistentPromise from "../PersistentPromise"; +import {SmppSession} from "../SmppSession"; const NanoTimer = require('nanotimer'); const smpp = require("smpp"); diff --git a/src/ClientSessionManager.ts b/src/Client/ClientSessionManager.ts similarity index 78% rename from src/ClientSessionManager.ts rename to src/Client/ClientSessionManager.ts index 2c1d22b..0450ab5 100644 --- a/src/ClientSessionManager.ts +++ b/src/Client/ClientSessionManager.ts @@ -1,9 +1,9 @@ import fs from "fs"; import {Client} from "./Client"; -import {Job} from "./Job"; -import Logger from "./Logger"; -import SessionManager from "./SessionManager"; -import {SmppSession} from "./SmppSession"; +import {Job} from "../Job"; +import Logger from "../Logger"; +import SessionManager from "../SessionManager"; +import {SmppSession} from "../SmppSession"; const CLIENT_SESSIONS_FILE: string = process.env.CLIENT_SESSIONS_FILE || "client_sessions.json"; @@ -20,6 +20,7 @@ export default class ClientSessionManager implements SessionManager { addSession(session: SmppSession): Promise { return new Promise((resolve, reject) => { + this.logger.log1(`Adding session with id ${session.getId()}`); this.sessions.push(session as Client); resolve(); }); @@ -27,14 +28,18 @@ export default class ClientSessionManager implements SessionManager { removeSession(session: SmppSession): Promise { return new Promise((resolve, reject) => { + this.logger.log1(`Removing session with id ${session.getId()}`); this.sessions = this.sessions.filter(s => s.getId() !== session.getId()); resolve(); }); } - // TODO: Make sure no url duplicates exist createSession(url: string, username: string, password: string): Promise { return new Promise((resolve, reject) => { + this.logger.log1(`Creating session with url ${url}`); + this.getSessionByUrl(url).then(s => { + resolve(s); + }, err => {}); this.verifyUrl(url, reject); this.verifyUsername(username, reject); this.verifyPassword(password, reject); @@ -48,10 +53,13 @@ export default class ClientSessionManager implements SessionManager { getSession(id: number): Promise { return new Promise((resolve, reject) => { + this.logger.log1(`Looking for session with id ${id}...`); let session: SmppSession | undefined = this.sessions.find(s => s.getId() === id); if (session) { + this.logger.log1(`Found session with id ${id}`); resolve(session); } else { + this.logger.log1(`Session with id ${id} not found`); reject(`Session with id ${id} not found`); } }); @@ -59,16 +67,20 @@ export default class ClientSessionManager implements SessionManager { getSessionByUrl(url: string): Promise { return new Promise((resolve, reject) => { + this.logger.log1(`Looking for session with url ${url}...`); let session: SmppSession | undefined = this.sessions.find(s => s.getUrl() === url); if (session) { + this.logger.log1(`Found session with url ${url}`); resolve(session); } else { + this.logger.log1(`Session with url ${url} not found`); reject(`Session with url ${url} not found`); } }); } serialize(): object { + this.logger.log1(`Serializing ${this.sessions.length} clients`) return this.sessions.map((session: SmppSession) => { return session.serialize(); }); @@ -76,9 +88,10 @@ export default class ClientSessionManager implements SessionManager { setup(): void { try { + this.logger.log1(`Loading clients from ${CLIENT_SESSIONS_FILE}`) let sessions: Buffer = fs.readFileSync(CLIENT_SESSIONS_FILE); let loadedSessions: any[] = JSON.parse(String(sessions)); - this.logger.log1(`Loaded ${sessions.length} clients from ${CLIENT_SESSIONS_FILE}...`); + this.logger.log1(`Loaded ${sessions.length} clients from ${CLIENT_SESSIONS_FILE}`); loadedSessions.forEach(session => { this.createSession(session.url, session.username, session.password).then((sessionObj: SmppSession) => { sessionObj.setDefaultSingleJob(Job.deserialize(session.defaultSingleJob)); @@ -87,6 +100,7 @@ export default class ClientSessionManager implements SessionManager { }); } catch (e) { this.logger.log1(`Error loading clients from ${CLIENT_SESSIONS_FILE}: ${e}`); + return; } } diff --git a/src/ClientStatus.ts b/src/Client/ClientStatus.ts similarity index 100% rename from src/ClientStatus.ts rename to src/Client/ClientStatus.ts diff --git a/src/main.ts b/src/main.ts index d48c846..345620c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,5 @@ -import {Client} from "./Client"; -import ClientSessionManager from "./ClientSessionManager"; +import {Client} from "./Client/Client"; +import ClientSessionManager from "./Client/ClientSessionManager"; import {Job} from "./Job"; import Logger from "./Logger";