transport.js 1.1 KB
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/, '').replace(/^\+/);
    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', { filename });
        try {
            fs.promises.writeFile(filename, msgFileContent, { mode: 0o660 });
        } catch (e) {
            logger.warn('Exception on writing outbox', { filename, err: e.toString() });
        }
    });
}

exports.send = send;