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;