Commit 55e015ed4dc7770ede5dcf0e00353215a54023fd
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; |