Commit 99e55f15e9782ba3a19d5c4b21da0f70db8d6c76
1 parent
da40159fa7
Exists in
master
Coba tangani bug mysql
Showing 2 changed files with 1 additions and 2 deletions Inline Diff
lib/db-mysql.js
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; |