Commit 2e3adb5d4fa6bde5022e39ba34d085b909fef3ea
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; |