diff --git a/migrations/20160430062446-eventlog-add-table.js b/migrations/20160430062446-eventlog-add-table.js index 7830cc741..02af1ecb7 100644 --- a/migrations/20160430062446-eventlog-add-table.js +++ b/migrations/20160430062446-eventlog-add-table.js @@ -6,7 +6,7 @@ exports.up = function(db, callback) { "id VARCHAR(128) NOT NULL," + "creationTime TIMESTAMP," + "action VARCHAR(128) NOT NULL," + - "dataJson TEXT," + + "data JSON," + "PRIMARY KEY (id))"; db.runSql(cmd, function (error) { diff --git a/src/eventlogdb.js b/src/eventlogdb.js index 109162f15..8842de76d 100644 --- a/src/eventlogdb.js +++ b/src/eventlogdb.js @@ -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); }); } +