From 8295b94e7442b1c6ae98bfb9331504d62125b005 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Mon, 19 Aug 2019 13:36:54 +0700 Subject: [PATCH] CORE prefixes --- index.js | 3 ++- lib/prefixes/index.js | 23 +++++++++++++++++++++++ package-lock.json | 8 ++++---- test/prefixes.js | 23 +++++++++++++++++++++++ 4 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 lib/prefixes/index.js create mode 100644 test/prefixes.js diff --git a/index.js b/index.js index c1383d2..a23868f 100644 --- a/index.js +++ b/index.js @@ -10,5 +10,6 @@ const config = require('komodo-sdk/config'); global.KOMODO_LOG_LABEL = `KOMODO-CENTER@${(config && typeof config.name === 'string') ? config.name.toUpperCase() : 'SMS'}`; process.title = global.KOMODO_LOG_LABEL; +require('./lib/prefixes'); require('./lib/transport'); -require('./lib/apiserver'); \ No newline at end of file +require('./lib/apiserver'); diff --git a/lib/prefixes/index.js b/lib/prefixes/index.js new file mode 100644 index 0000000..ceac772 --- /dev/null +++ b/lib/prefixes/index.js @@ -0,0 +1,23 @@ +'use strict'; + +const coreapi = require('komodo-sdk/coreapi'); + +async function lookup(number) { + if (!number) return; + + const [err, lookupResult] = await coreapi({ + path: '/prefixes/lookup', + method: 'GET', + qs: { + number, + } + }); + + if (err || !lookupResult || lookupResult.error) { + return; + } + + return lookupResult.prefix; +} + +exports.lookup = lookup; diff --git a/package-lock.json b/package-lock.json index 493bc33..974ae3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2043,9 +2043,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", "optional": true }, "growl": { @@ -2557,7 +2557,7 @@ } }, "komodo-sdk": { - "version": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git#b9d4c0ca232d01b41a438b21a0b81e2448bd21bd", + "version": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git#277d0d5904a82a2d9d5f0d2dfde4816e7d416ae8", "from": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", "requires": { "array-unique": "^0.3.2", diff --git a/test/prefixes.js b/test/prefixes.js new file mode 100644 index 0000000..a112773 --- /dev/null +++ b/test/prefixes.js @@ -0,0 +1,23 @@ +'use strict'; + +/* global describe it */ + +global.KOMODO_SDK_NO_LOG_ON_COREAPI = true; + +const should = require('should'); +const prefixes = require('../lib/prefixes'); + +describe('#prefixes', () => { + describe('#lookup', () => { + it('should return correct prefix', async () => { + const lookupResult = await prefixes.lookup('08180000000'); + lookupResult.should.equal('XL'); + }); + + it('should handle unknown prefix', async () => { + should.not.exist(await prefixes.lookup()); + should.not.exist(await prefixes.lookup('')); + should.not.exist(await prefixes.lookup('9')); + }); + }); +}); \ No newline at end of file -- 1.9.0