Commit 99e55f15e9782ba3a19d5c4b21da0f70db8d6c76

Authored by Adhidarma Hadiwinoto
1 parent da40159fa7
Exists in master

Coba tangani bug mysql

Showing 2 changed files with 1 additions and 2 deletions Inline Diff

1 'use strict'; 1 'use strict';
2 2
3 const mysql = require('mysql'); 3 const mysql = require('mysql');
4 4
5 const config = require('komodo-sdk/config'); 5 const config = require('komodo-sdk/config');
6 6
7 const connectionLimit = config.mysql && config.mysql.pool_connection_limit ? config.mysql.pool_connection_limit : 0; 7 const connectionLimit = config.mysql && config.mysql.pool_connection_limit ? config.mysql.pool_connection_limit : 0;
8 8
9 const pool = config.mysql ? mysql.createPool({ 9 const pool = config.mysql ? mysql.createPool({
10 connectionLimit: connectionLimit, 10 connectionLimit: connectionLimit,
11 host: config.mysql.host || 'localhost', 11 host: config.mysql.host || 'localhost',
12 database: config.mysql.database || 'komodo', 12 database: config.mysql.database || 'komodo',
13 user: config.mysql.user || 'komodo', 13 user: config.mysql.user || 'komodo',
14 password: config.mysql.password 14 password: config.mysql.password
15 }) : null; 15 }) : null;
16 16
17 exports.pool = pool; 17 exports.pool = pool;
18 exports.query = pool.query;
19 18
20 exports.format = (sql, values) => { 19 exports.format = (sql, values) => {
21 return new Promise((resolve, reject) => { 20 return new Promise((resolve, reject) => {
22 if (!pool) { 21 if (!pool) {
23 reject('Missing DB config'); 22 reject('Missing DB config');
24 return; 23 return;
25 } 24 }
26 25
27 pool.getConnection((err, connection) => { 26 pool.getConnection((err, connection) => {
28 if (err) { 27 if (err) {
29 reject(err); 28 reject(err);
30 return; 29 return;
31 } 30 }
32 31
33 resolve(connection.format(sql, values)); 32 resolve(connection.format(sql, values));
34 connection.release(); 33 connection.release();
35 }); 34 });
36 }) 35 })
37 } 36 }
lib/messages-archive.js
1 'use strict'; 1 'use strict';
2 2
3 const logger = require('komodo-sdk/logger'); 3 const logger = require('komodo-sdk/logger');
4 const db = require('./db-mysql'); 4 const db = require('./db-mysql');
5 5
6 const DIRECTION_INCOMING = 0; 6 const DIRECTION_INCOMING = 0;
7 const DIRECTION_OUTGOING = 1; 7 const DIRECTION_OUTGOING = 1;
8 8
9 /** 9 /**
10 * Menyimpan pesan ke dalam archive histori pesan di database 10 * Menyimpan pesan ke dalam archive histori pesan di database
11 * 11 *
12 * @param {object} params - objek pesan yang akan disimpan 12 * @param {object} params - objek pesan yang akan disimpan
13 * @param {string} [params.origin_label] - label origin 13 * @param {string} [params.origin_label] - label origin
14 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan 14 * @param {string} [params.origin=UNKNOWN] - digunakan sebagai label origin jika tdk ditentukan
15 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM 15 * @param {string} [params.origin_transport=UNKNOWN] - transport, misal SMS, TELEGRAM
16 * @param {string} params.partner - pengirim / penerima 16 * @param {string} params.partner - pengirim / penerima
17 * @param {string} [params.msg] - isi pesan 17 * @param {string} [params.msg] - isi pesan
18 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi 18 * @param {string} [params.message] - isi pesan, jika params.msg tidak terdefinisi
19 * @param {number} direction - 0: incoming, 1: outgoing 19 * @param {number} direction - 0: incoming, 1: outgoing
20 */ 20 */
21 function insert(params, direction) { 21 function insert(params, direction) {
22 if (!db.pool) return; 22 if (!db.pool) return;
23 23
24 const query = `INSERT INTO messages SET created = NOW(), ?`; 24 const query = `INSERT INTO messages SET created = NOW(), ?`;
25 const values = [{ 25 const values = [{
26 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(), 26 origin_label: (params.origin_label || params.origin || 'UNKNOWN').trim(),
27 origin_transport: (params.origin_transport || 'UNKNOWN').trim(), 27 origin_transport: (params.origin_transport || 'UNKNOWN').trim(),
28 direction, 28 direction,
29 partner: params.partner.trim(), 29 partner: params.partner.trim(),
30 message: (params.msg || params.message).trim(), 30 message: (params.msg || params.message).trim(),
31 }]; 31 }];
32 32
33 db.query(query, values, (err) => { 33 db.pool.query(query, values, (err) => {
34 if (err) { 34 if (err) {
35 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`); 35 logger.warn(`MESSAGES-ARCHIVE: DB ERROR on inserting message. ${err.toString()}`);
36 } 36 }
37 }); 37 });
38 } 38 }
39 39
40 exports.insert = insert; 40 exports.insert = insert;
41 exports.DIRECTION_INCOMING = DIRECTION_INCOMING; 41 exports.DIRECTION_INCOMING = DIRECTION_INCOMING;
42 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING; 42 exports.DIRECTION_OUTGOING = DIRECTION_OUTGOING;