Commit 2e3adb5d4fa6bde5022e39ba34d085b909fef3ea

Authored by Adhidarma Hadiwinoto
1 parent f7036c8a03
Exists in master

Warn on no redis

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