messages-archive.js 1.45 KB
'use strict';

const logger = require('komodo-sdk/logger');
const db = require('./db-mysql');

const DIRECTION_INCOMING = 0;
const DIRECTION_OUTGOING = 1;

/**
 * Menyimpan pesan ke dalam archive histori pesan di database
 * 
 * @param  {object} params - objek pesan yang akan disimpan
 * @param  {string} [params.origin_label] - label origin
 * @param  {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan
 * @param  {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM
 * @param  {string} params.partner - pengirim / penerima
 * @param  {string} [params.msg] - isi pesan
 * @param  {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi
 * @param  {number} direction - 0: incoming, 1: outgoing
 */
function insert(params, direction) {
    if (!db.pool) return;

    const query = `INSERT INTO messages SET ?`;
    const values = [{
        origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(),
        origin_transport: (params.origin_transport || 'UNKNOWN').trim(),
        direction,
        partner: params.partner.trim(),
        message: (params.msg || params.message).trim(),
    }];

    db.pool.query(query, values, (err) => {
        if (err) {
            logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`);
        }
    });
}

exports.insert = insert;
exports.DIRECTION_INCOMING = DIRECTION_INCOMING;
exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING;