Commit b245199e2be66fd8f758951ea2f108d9f3ddcd86
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; |