Commit 55e015ed4dc7770ede5dcf0e00353215a54023fd

Authored by Adhidarma Hadiwinoto
1 parent 449ed021da
Exists in master

RedisClient fixed

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