Commit 788e8154b3cfdc41b899c2ff2f2894939bf2195d
1 parent
d54a2eebcd
Exists in
master
Detect sms nomor tujuan valid phone number tidak
Showing 1 changed file with 4 additions and 1 deletions Inline Diff
lib/transport.js
1 | const fs = require('fs'); | 1 | const fs = require('fs'); |
2 | const moment = require('moment'); | 2 | const moment = require('moment'); |
3 | const uniqid = require('uniqid'); | 3 | const uniqid = require('uniqid'); |
4 | 4 | ||
5 | const config = require('komodo-sdk/config'); | 5 | const config = require('komodo-sdk/config'); |
6 | const logger = require('komodo-sdk/logger'); | 6 | const logger = require('komodo-sdk/logger'); |
7 | 7 | ||
8 | async function send(partner, msg) { | 8 | async function send(partner, msg) { |
9 | if (typeof partner !== 'string' || typeof msg !== 'string') return; | 9 | if (typeof partner !== 'string' || typeof msg !== 'string') return; |
10 | if (!partner.trim() || !msg.trim()) return; | 10 | if (!partner.trim() || !msg.trim()) return; |
11 | 11 | ||
12 | const destination = partner.trim().replace(/^0/, '').replace(/^\+/); | 12 | const destination = partner.trim().replace(/^0/, '62').replace(/^\+/, ''); |
13 | |||
14 | if (!destination || !Number(destination) || destination.length < 8) return; | ||
15 | |||
13 | const msgFileContent = ` | 16 | const msgFileContent = ` |
14 | To: ${destination} | 17 | To: ${destination} |
15 | 18 | ||
16 | ${msg.trim()} | 19 | ${msg.trim()} |
17 | `.trim(); | 20 | `.trim(); |
18 | 21 | ||
19 | const dir = config.outbox_dir || '/var/spool/sms/outgoing'; | 22 | const dir = config.outbox_dir || '/var/spool/sms/outgoing'; |
20 | const ts = moment().format('YYYYMMDD_HHmmss.SSS'); | 23 | const ts = moment().format('YYYYMMDD_HHmmss.SSS'); |
21 | const filename = `${dir}/komodo.${ts}.${uniqid()}`; | 24 | const filename = `${dir}/komodo.${ts}.${uniqid()}`; |
22 | 25 | ||
23 | fs.exists(dir, (isExists) => { | 26 | fs.exists(dir, (isExists) => { |
24 | if (!isExists) { | 27 | if (!isExists) { |
25 | logger.warn('Outbox dir is not exists', { dir }); | 28 | logger.warn('Outbox dir is not exists', { dir }); |
26 | return; | 29 | return; |
27 | } | 30 | } |
28 | 31 | ||
29 | logger.info('Writing outbox', { filename }); | 32 | logger.info('Writing outbox', { filename }); |
30 | try { | 33 | try { |
31 | fs.promises.writeFile(filename, msgFileContent, { mode: 0o660 }); | 34 | fs.promises.writeFile(filename, msgFileContent, { mode: 0o660 }); |
32 | } catch (e) { | 35 | } catch (e) { |
33 | logger.warn('Exception on writing outbox', { filename, err: e.toString() }); | 36 | logger.warn('Exception on writing outbox', { filename, err: e.toString() }); |
34 | } | 37 | } |
35 | }); | 38 | }); |
36 | } | 39 | } |
37 | 40 | ||
38 | exports.send = send; | 41 | exports.send = send; |
39 | 42 |