transport.js
1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const fs = require('fs');
const moment = require('moment');
const uniqid = require('uniqid');
const config = require('komodo-sdk/config');
const logger = require('komodo-sdk/logger');
async function send(partner, msg) {
if (typeof partner !== 'string' || typeof msg !== 'string') return;
if (!partner.trim() || !msg.trim()) return;
const destination = partner.trim().replace(/^0/, '62').replace(/^\+/, '');
if (!destination || !Number(destination) || destination.length < 8) return;
if (msg.trim().search(/DIPROSES$/) >= 0) return;
const msgFileContent = `
To: ${destination}
${msg.trim()}
`.trim();
const dir = config.outbox_dir || '/var/spool/sms/outgoing';
const ts = moment().format('YYYYMMDD_HHmmss.SSS');
const filename = `${dir}/komodo.${ts}.${uniqid()}`;
fs.exists(dir, (isExists) => {
if (!isExists) {
logger.warn('Outbox dir is not exists', { dir });
return;
}
logger.info('Writing outbox', {
to: destination, msg: msg.trim(), msgLength: msg.trim().length, filename,
});
try {
fs.promises.writeFile(filename, msgFileContent, { mode: 0o660 });
} catch (e) {
logger.warn('Exception on writing outbox', {
to: destination,
msg: msg.trim(),
filename,
err: e.toString(),
});
}
});
}
exports.send = send;