use JSON type (nice for querying)
This commit is contained in:
@@ -14,13 +14,11 @@ var assert = require('assert'),
|
||||
DatabaseError = require('./databaseerror'),
|
||||
safe = require('safetydance');
|
||||
|
||||
var EVENTLOGS_FIELDS = [ 'id', 'action', 'dataJson', 'creationTime' ].join(',');
|
||||
var EVENTLOGS_FIELDS = [ 'id', 'action', 'data', 'creationTime' ].join(',');
|
||||
|
||||
// until mysql module supports automatic type coercion
|
||||
function postProcess(eventLog) {
|
||||
eventLog.data = safe.JSON.parse(eventLog.dataJson);
|
||||
|
||||
delete eventLog.dataJson;
|
||||
|
||||
eventLog.data = safe.JSON.parse(eventLog.data);
|
||||
return eventLog;
|
||||
}
|
||||
|
||||
@@ -41,7 +39,7 @@ function getAllPaged(page, perPage, callback) {
|
||||
assert.strictEqual(typeof perPage, 'number');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
database.query('SELECT ' + EVENTLOGS_FIELDS + 'FROM eventlog ORDER BY creationTime DESC LIMIT ?,?', [ (page-1)*perPage, perPage ], function (error, results) {
|
||||
database.query('SELECT ' + EVENTLOGS_FIELDS + ' FROM eventlog ORDER BY creationTime DESC LIMIT ?,?', [ (page-1)*perPage, perPage ], function (error, results) {
|
||||
if (error) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
||||
|
||||
results.forEach(postProcess);
|
||||
@@ -56,7 +54,7 @@ function add(id, action, data, callback) {
|
||||
assert.strictEqual(typeof data, 'object');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
database.query('INSERT INTO eventlog (id, action, dataJson) VALUES (?, ?, ?)', [ id, action, JSON.stringify(data) ], function (error, result) {
|
||||
database.query('INSERT INTO eventlog (id, action, data) VALUES (?, ?, ?)', [ id, action, JSON.stringify(data) ], function (error, result) {
|
||||
if (error && error.code === 'ER_DUP_ENTRY') return callback(new DatabaseError(DatabaseError.ALREADY_EXISTS, error));
|
||||
if (error || result.affectedRows !== 1) return callback(new DatabaseError(DatabaseError.INTERNAL_ERROR, error));
|
||||
|
||||
@@ -81,3 +79,4 @@ function clear(callback) {
|
||||
callback(error);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user