diff --git a/src/HttpServer/RequestHandler.ts b/src/HttpServer/RequestHandler.ts index 1a2d708..543f8b7 100644 --- a/src/HttpServer/RequestHandler.ts +++ b/src/HttpServer/RequestHandler.ts @@ -35,15 +35,7 @@ export abstract class RequestHandler { doConfigureSingleJob(req: any, res: any): void { this.sessionManager.getSession(Number(req.params.id)).then((session: SmppSession) => { let job: Job = session.getDefaultSingleJob(); - if (job.pdu.source_addr !== req.body.source) { - job.pdu.source_addr = req.body.source; - } - if (job.pdu.destination_addr !== req.body.destination) { - job.pdu.destination_addr = req.body.destination; - } - if (job.pdu.short_message !== req.body.message) { - job.pdu.short_message = req.body.message; - } + job.update(req); this.logger.log1(`Updating default job on session with ID ${req.params.id}`); res.send(session.serialize()); }, this.handleSessionNotFound.bind(this, req, res)); @@ -80,21 +72,7 @@ export abstract class RequestHandler { doConfigureManyJob(req: any, res: any): void { this.sessionManager.getSession(req.params.id).then((session: SmppSession) => { let job: Job = session.getDefaultMultipleJob(); - if (!job.pdu.source_addr && job.pdu.source_addr !== req.body.source) { - job.pdu.source_addr = req.body.source; - } - if (!job.pdu.destination_addr && job.pdu.destination_addr !== req.body.destination) { - job.pdu.destination_addr = req.body.destination; - } - if (!job.pdu.short_message && job.pdu.short_message !== req.body.message) { - job.pdu.short_message = req.body.message; - } - if (!job.perSecond && job.perSecond !== req.body.perSecond) { - job.perSecond = req.body.perSecond; - } - if (!job.count && job.count !== req.body.count) { - job.count = req.body.count; - } + job.update(req); this.logger.log1(`Updating default job on session with ID ${req.params.id}`) res.send(session.serialize()); }, this.handleSessionNotFound.bind(this, req, res)); diff --git a/src/Job/Job.ts b/src/Job/Job.ts index 0f42bc6..fc9732f 100644 --- a/src/Job/Job.ts +++ b/src/Job/Job.ts @@ -61,6 +61,24 @@ export class Job { return new Job({}, 1, 1); } + update(req: any) { + if (req.body.source != this._pdu.source_addr) { + this._pdu.source_addr = req.body.source; + } + if (req.body.destination != this._pdu.destination_addr) { + this._pdu.destination_addr = req.body.destination; + } + if (req.body.message != this._pdu.short_message) { + this._pdu.short_message = req.body.message; + } + if (!!req.body.perSecond && req.body.perSecond != this._perSecond) { + this._perSecond = req.body.perSecond; + } + if (!!req.body.count && req.body.count != this._count) { + this._count = req.body.count; + } + } + serialize(): object { return { pdu: this.pdu,