Commit 6224382333828cb479e6ad8fb463c0c877045806

Authored by Adhidarma Hadiwinoto
1 parent 5986078357
Exists in master

Messages counter

Showing 2 changed files with 20 additions and 0 deletions Inline Diff

lib/messages-archive.js
1 'use strict'; 1 'use strict';
2 2
3 const redis = require('redis');
4
5 const config = require('./config');
3 const logger = require('komodo-sdk/logger'); 6 const logger = require('komodo-sdk/logger');
4 const db = require('./db-mysql'); 7 const db = require('./db-mysql');
5 8
6 const DIRECTION_INCOMING = 0; 9 const DIRECTION_INCOMING = 0;
7 const DIRECTION_OUTGOING = 1; 10 const DIRECTION_OUTGOING = 1;
8 11
12 const redisClient = config.redis && redis.createClient(config.redis);
13
14 function composeRedisCounterKeyword(origin, direction) {
15 const directionLabel = direction == DIRECTION_OUTGOING ? 'OUT' : 'IN';
16 return `CALMA_MESSAGE_COUNTER_${origin}_${directionLabel}`;
17 }
18
19 function incrementCounter(origin, direction) {
20 redisClient && redisClient.INCR(composeRedisCounterKeyword(origin, direction), () => {});
21 }
22
9 /** 23 /**
10 * Menyimpan pesan ke dalam archive histori pesan di database 24 * Menyimpan pesan ke dalam archive histori pesan di database
11 * 25 *
12 * @param {object} params - objek pesan yang akan disimpan 26 * @param {object} params - objek pesan yang akan disimpan
13 * @param {string} [params.origin_label] - label origin 27 * @param {string} [params.origin_label] - label origin
14 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan 28 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan
15 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM 29 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM
16 * @param {string} params.partner - pengirim / penerima 30 * @param {string} params.partner - pengirim / penerima
17 * @param {string} [params.msg] - isi pesan 31 * @param {string} [params.msg] - isi pesan
18 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi 32 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi
19 * @param {number} direction - 0: incoming, 1: outgoing 33 * @param {number} direction - 0: incoming, 1: outgoing
20 */ 34 */
21 function insert(params, direction) { 35 function insert(params, direction) {
36 incrementCounter(
37 params.origin_label || params.origin,
38 params.direction
39 );
40
22 if (!db.pool) return; 41 if (!db.pool) return;
23 42
24 const query = `INSERT INTO messages SET ?`; 43 const query = `INSERT INTO messages SET ?`;
25 const values = [{ 44 const values = [{
26 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(), 45 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(),
27 origin_transport: (params.origin_transport || 'UNKNOWN').trim(), 46 origin_transport: (params.origin_transport || 'UNKNOWN').trim(),
28 direction, 47 direction,
29 partner: params.partner.trim(), 48 partner: params.partner.trim(),
30 message: (params.msg || params.message).trim(), 49 message: (params.msg || params.message).trim(),
31 }]; 50 }];
32 51
33 db.pool.query(query, values, (err) => { 52 db.pool.query(query, values, (err) => {
34 if (err) { 53 if (err) {
35 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`); 54 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`);
36 } 55 }
37 }); 56 });
38 } 57 }
39 58
40 exports.insert = insert; 59 exports.insert = insert;
41 exports.DIRECTION_INCOMING = DIRECTION_INCOMING; 60 exports.DIRECTION_INCOMING = DIRECTION_INCOMING;
42 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING; 61 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING;
1 { 1 {
2 "name": "komodo-center-messaging", 2 "name": "komodo-center-messaging",
3 "version": "0.9.16", 3 "version": "0.9.16",
4 "description": "Komodo Common Messaging Center", 4 "description": "Komodo Common Messaging Center",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "mocha", 7 "test": "mocha",
8 "postversion": "git push && git push --tags" 8 "postversion": "git push && git push --tags"
9 }, 9 },
10 "repository": { 10 "repository": {
11 "type": "git", 11 "type": "git",
12 "url": "git@gitlab.kodesumber.com:komodo/komodo-center-messaging.git" 12 "url": "git@gitlab.kodesumber.com:komodo/komodo-center-messaging.git"
13 }, 13 },
14 "keywords": [ 14 "keywords": [
15 "komodo", 15 "komodo",
16 "tektrans", 16 "tektrans",
17 "ppob" 17 "ppob"
18 ], 18 ],
19 "author": "Adhidarma Hadiwinoto <me@adhisimon.org>", 19 "author": "Adhidarma Hadiwinoto <me@adhisimon.org>",
20 "license": "ISC", 20 "license": "ISC",
21 "dependencies": { 21 "dependencies": {
22 "body-parser": "^1.19.0", 22 "body-parser": "^1.19.0",
23 "express": "^4.17.1", 23 "express": "^4.17.1",
24 "express-ipfilter": "^1.0.1", 24 "express-ipfilter": "^1.0.1",
25 "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", 25 "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
26 "mysql": "^2.17.1", 26 "mysql": "^2.17.1",
27 "natural-compare-lite": "^1.4.0", 27 "natural-compare-lite": "^1.4.0",
28 "redis": "^2.8.0",
28 "request": "^2.88.0", 29 "request": "^2.88.0",
29 "yargs": "^13.2.4" 30 "yargs": "^13.2.4"
30 }, 31 },
31 "devDependencies": { 32 "devDependencies": {
32 "eslint": "^5.16.0", 33 "eslint": "^5.16.0",
33 "should": "^13.2.3" 34 "should": "^13.2.3"
34 } 35 }
35 } 36 }
36 37