sent.js 1.44 KB
const fs = require('fs');
const logger = require('komodo-sdk/logger');

const config = require('komodo-sdk/config');
const messagingClient = require('komodo-center-messaging-client-lib');
const transport = require('../transport');
const mailparser = require('../mailparser-wrapper');

messagingClient.setTransport(transport);

const eventType = 'SENT';


module.exports = async (msgFilename) => {
    const msg = await fs.promises.readFile(msgFilename);

    if (!msg) {
        logger.warn('Message sent but we can not read message file', { eventType, msgFile: msgFilename });
        return;
    }

    const parsedMsg = await mailparser(msg);

    if (!parsedMsg || !parsedMsg.headers) {
        logger.warn('Message sent but we can not parse the file', { eventType, msgFile: msgFilename });
        return;
    }

    const to = parsedMsg.headers.get('to').text;
    const imsi = parsedMsg.headers.get('imsi');
    const { text } = parsedMsg;

    logger.info('Message sent', {
        eventType,
        msgFile: msgFilename,
        to,
        imsi,
        text,
    });

    if (!to || !imsi || !text) {
        return;
    }

    messagingClient.onIncomingMessage({
        me: imsi,
        partner: `${to}${config.number_suffix || ''}`,
        partner_raw: to,
        msg: text,
        origin_label: imsi || 'UNKNOWN',
        origin_transport: 'SMS',
        origin_partner: to,
        do_not_forward_to_core: true,
        is_outgoing: true,
    });
};