Commit b245199e2be66fd8f758951ea2f108d9f3ddcd86

Authored by Adhidarma Hadiwinoto
1 parent 107838f10b
Exists in master

More log

Showing 1 changed file with 1 additions and 0 deletions Inline Diff

lib/messages-archive.js
1 'use strict'; 1 'use strict';
2 2
3 const redis = require('redis'); 3 const redis = require('redis');
4 4
5 const config = require('komodo-sdk/config'); 5 const config = require('komodo-sdk/config');
6 const logger = require('komodo-sdk/logger'); 6 const logger = require('komodo-sdk/logger');
7 const db = require('./db-mysql'); 7 const db = require('./db-mysql');
8 8
9 const DIRECTION_INCOMING = 0; 9 const DIRECTION_INCOMING = 0;
10 const DIRECTION_OUTGOING = 1; 10 const DIRECTION_OUTGOING = 1;
11 11
12 const redisClient = config.redis && redis.createClient(config.redis); 12 const redisClient = config.redis && redis.createClient(config.redis);
13 13
14 if (!config.redis) { 14 if (!config.redis) {
15 logger.warn('Undefined config.redis, messages counter will not work! #05A778E21D7E'); 15 logger.warn('Undefined config.redis, messages counter will not work! #05A778E21D7E');
16 } 16 }
17 17
18 if (!redisClient) { 18 if (!redisClient) {
19 logger.warn('Undefined redisClient, messages counter will not work! #1D3EC165E8D9'); 19 logger.warn('Undefined redisClient, messages counter will not work! #1D3EC165E8D9');
20 } 20 }
21 21
22 function composeRedisCounterKeyword(origin, direction) { 22 function composeRedisCounterKeyword(origin, direction) {
23 const directionLabel = direction == DIRECTION_OUTGOING ? 'OUT' : 'IN'; 23 const directionLabel = direction == DIRECTION_OUTGOING ? 'OUT' : 'IN';
24 return `CALMA_MESSAGE_COUNTER_${origin}_${directionLabel}`; 24 return `CALMA_MESSAGE_COUNTER_${origin}_${directionLabel}`;
25 } 25 }
26 26
27 function incrementCounter(origin, direction) { 27 function incrementCounter(origin, direction) {
28 logger.warn('Undefined redisClient, not incrementing messages counter! #FF8E765E12E2');
28 redisClient && redisClient.INCR(composeRedisCounterKeyword(origin, direction), () => {}); 29 redisClient && redisClient.INCR(composeRedisCounterKeyword(origin, direction), () => {});
29 } 30 }
30 31
31 /** 32 /**
32 * Menyimpan pesan ke dalam archive histori pesan di database 33 * Menyimpan pesan ke dalam archive histori pesan di database
33 * 34 *
34 * @param {object} params - objek pesan yang akan disimpan 35 * @param {object} params - objek pesan yang akan disimpan
35 * @param {string} [params.origin_label] - label origin 36 * @param {string} [params.origin_label] - label origin
36 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan 37 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan
37 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM 38 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM
38 * @param {string} params.partner - pengirim / penerima 39 * @param {string} params.partner - pengirim / penerima
39 * @param {string} [params.msg] - isi pesan 40 * @param {string} [params.msg] - isi pesan
40 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi 41 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi
41 * @param {number} direction - 0: incoming, 1: outgoing 42 * @param {number} direction - 0: incoming, 1: outgoing
42 */ 43 */
43 function insert(params, direction) { 44 function insert(params, direction) {
44 incrementCounter( 45 incrementCounter(
45 params.origin_label || params.origin, 46 params.origin_label || params.origin,
46 params.direction 47 params.direction
47 ); 48 );
48 49
49 if (!db.pool) return; 50 if (!db.pool) return;
50 51
51 const query = `INSERT INTO messages SET ?`; 52 const query = `INSERT INTO messages SET ?`;
52 const values = [{ 53 const values = [{
53 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(), 54 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(),
54 origin_transport: (params.origin_transport || 'UNKNOWN').trim(), 55 origin_transport: (params.origin_transport || 'UNKNOWN').trim(),
55 direction, 56 direction,
56 partner: params.partner.trim(), 57 partner: params.partner.trim(),
57 message: (params.msg || params.message).trim(), 58 message: (params.msg || params.message).trim(),
58 }]; 59 }];
59 60
60 db.pool.query(query, values, (err) => { 61 db.pool.query(query, values, (err) => {
61 if (err) { 62 if (err) {
62 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`); 63 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`);
63 } 64 }
64 }); 65 });
65 } 66 }
66 67
67 exports.insert = insert; 68 exports.insert = insert;
68 exports.DIRECTION_INCOMING = DIRECTION_INCOMING; 69 exports.DIRECTION_INCOMING = DIRECTION_INCOMING;
69 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING; 70 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING;