From 9dcf4a4f470a5f2b55f60060243bf4d8cb2ea2da Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Fri, 6 Dec 2019 12:34:13 +0700 Subject: [PATCH] remove-suffix --- lib/remove-suffix.js | 9 +++++++++ lib/transport.js | 5 ++++- package-lock.json | 29 +++++++++++++++++++++++++---- package.json | 1 + test/remove-suffix.js | 12 ++++++++++++ 5 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 lib/remove-suffix.js create mode 100644 test/remove-suffix.js diff --git a/lib/remove-suffix.js b/lib/remove-suffix.js new file mode 100644 index 0000000..2ea9635 --- /dev/null +++ b/lib/remove-suffix.js @@ -0,0 +1,9 @@ +const escapeStringRegexp = require('escape-string-regexp'); + +module.exports = (str, suffix) => { + if (!str) return str; + if (!suffix) return str; + + const re = new RegExp(`${escapeStringRegexp(suffix)}$`); + return str.replace(re, ''); +}; diff --git a/lib/transport.js b/lib/transport.js index 3bfff9e..b9c704a 100644 --- a/lib/transport.js +++ b/lib/transport.js @@ -9,6 +9,7 @@ const messagingClient = require('komodo-center-messaging-client-lib'); const modems = require('./modems'); const messageSplitter = require('./message-splitter'); const modemLocks = require('./modem-locks'); +const removeSuffix = require('./remove-suffix'); async function sleep(ms) { return new Promise((resolve) => { @@ -86,6 +87,7 @@ exports.send = async (partner, msg) => { if (msg.trim().search(/PROSES$/) >= 0) return; const xid = uniqid(); + logger.info('TRANSPORT: Got CORE message to forward to EVO-CP', { xid, partner, @@ -102,5 +104,6 @@ exports.send = async (partner, msg) => { return; } - await sendToModem(partner, msg.trim(), modem, xid, 1); + const to = removeSuffix(partner, config.number_suffix || ''); + await sendToModem(to, msg.trim(), modem, xid, 1); }; diff --git a/package-lock.json b/package-lock.json index 7583678..1ec7524 100644 --- a/package-lock.json +++ b/package-lock.json @@ -434,6 +434,14 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "chardet": { @@ -979,10 +987,9 @@ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" }, "eslint": { "version": "6.7.2", @@ -1424,6 +1431,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "file-entry-cache": { @@ -2941,6 +2956,12 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", diff --git a/package.json b/package.json index cf24522..3d33051 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "axios": "^0.19.0", + "escape-string-regexp": "^2.0.0", "express": "^4.17.1", "komodo-center-messaging-client-lib": "git+http://gitlab.kodesumber.com/komodo/komodo-center-messaging-client-lib.git", "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", diff --git a/test/remove-suffix.js b/test/remove-suffix.js new file mode 100644 index 0000000..ba70ea1 --- /dev/null +++ b/test/remove-suffix.js @@ -0,0 +1,12 @@ +/* global describe it */ +require('should'); + +const removeSuffix = require('../lib/remove-suffix'); + +describe('#removeSuffix', () => { + it('should return correctly', () => { + removeSuffix('62812812@phonenumber', '@phonenumber').should.equal('62812812'); + removeSuffix('62812812@phonenumber', '').should.equal('62812812@phonenumber'); + removeSuffix('62812812@phonenumber', null).should.equal('62812812@phonenumber'); + }); +}); -- 1.9.0