Skip to content

Commit 557635d

Browse files
committed
Improving handling of logs in sqlite
1 parent 8a98e69 commit 557635d

File tree

15 files changed

+1705
-1499
lines changed

15 files changed

+1705
-1499
lines changed

.jshintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules/*

.jshintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "esversion":6 }

controllers/home.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
(function () {
2+
"use strict";
3+
4+
var express = require('express'),
5+
router = express.Router();
6+
7+
router.get('/', function (req, res) {
8+
switch (req.accepts('html')) {
9+
case 'html':
10+
res.render('home');
11+
break;
12+
default:
13+
res.status(406).send('Not Acceptable');
14+
break;
15+
}
16+
});
17+
18+
module.exports = router;
19+
}());

controllers/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
var express = require('express'),
55
router = express.Router();
66

7+
router.use('/', require('./home'));
78
router.use('/pleaseNotify', require('./please-notify'));
89
router.use('/ping', require('./ping'));
910
router.use('/pingForm', require('./ping-form'));

controllers/ping-form.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
router.get('/', function (req, res) {
88
switch (req.accepts('html')) {
9-
case 'html':
10-
res.render('ping-form');
11-
break;
12-
default:
13-
res.status(406).send('Not Acceptable');
14-
break;
9+
case 'html':
10+
res.render('ping-form');
11+
break;
12+
default:
13+
res.status(406).send('Not Acceptable');
14+
break;
1515
}
1616
});
1717

controllers/ping.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414

1515
function processResponse(req, res, result) {
1616
switch (req.accepts('xml', 'json')) {
17-
case 'xml':
18-
res.set('Content-Type', 'text/xml');
19-
res.send(restReturnSuccess(
20-
result.success,
21-
result.msg,
22-
'result'
23-
));
24-
break;
25-
case 'json':
26-
res.json(result);
27-
break;
28-
default:
29-
res.status(406).send('Not Acceptable');
30-
break;
17+
case 'xml':
18+
res.set('Content-Type', 'text/xml');
19+
res.send(restReturnSuccess(
20+
result.success,
21+
result.msg,
22+
'result'
23+
));
24+
break;
25+
case 'json':
26+
res.json(result);
27+
break;
28+
default:
29+
res.status(406).send('Not Acceptable');
30+
break;
3131
}
3232
}
3333

controllers/please-notify.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414

1515
function processResponse(req, res, result) {
1616
switch (req.accepts('xml', 'json')) {
17-
case 'xml':
18-
res.set('Content-Type', 'text/xml');
19-
res.send(restReturnSuccess(
20-
result.success,
21-
result.msg,
22-
'notifyResult'
23-
));
24-
break;
25-
case 'json':
26-
res.json(result);
27-
break;
28-
default:
29-
res.status(406).send('Not Acceptable');
30-
break;
17+
case 'xml':
18+
res.set('Content-Type', 'text/xml');
19+
res.send(restReturnSuccess(
20+
result.success,
21+
result.msg,
22+
'notifyResult'
23+
));
24+
break;
25+
case 'json':
26+
res.json(result);
27+
break;
28+
default:
29+
res.status(406).send('Not Acceptable');
30+
break;
3131
}
3232
}
3333

controllers/view-log.js

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,33 @@
88
logEmitter = require('../services/log-emitter'),
99
router = express.Router();
1010

11-
function fetchVals(db, id, callback) {
11+
function fetchVals(db, callback) {
1212
var vals = {
1313
'eventlog': []
1414
};
1515

16-
db.serialize(function() {
17-
db.each("SELECT * FROM log_events ORDER BY time DESC LIMIT 1000", function(err, row) {
16+
db.serialize(() => {
17+
db.each("SELECT * FROM log_events ORDER BY time DESC LIMIT 1000", (err, row) => {
1818
row.headers = JSON.parse(row.headers);
1919
vals.eventlog.push(row);
20-
}, function () {
20+
}, () => {
2121
callback(null, vals);
2222
});
2323
});
2424
}
2525

2626
function processResponse(req, res, vals) {
2727
switch (req.accepts('html', 'json')) {
28-
case 'html':
29-
vals.wshost = res.app.locals.host + ':' + res.app.locals.port;
30-
res.render('view-log', vals);
31-
break;
32-
case 'json':
33-
res.json(vals.eventlog);
34-
break;
35-
default:
36-
res.status(406).send('Not Acceptable');
37-
break;
28+
case 'html':
29+
vals.wshost = res.app.locals.host + ':' + res.app.locals.port;
30+
res.render('view-log', vals);
31+
break;
32+
case 'json':
33+
res.json(vals.eventlog);
34+
break;
35+
default:
36+
res.status(406).send('Not Acceptable');
37+
break;
3838
}
3939
}
4040

@@ -44,26 +44,24 @@
4444

4545
router.get('/', function (req, res) {
4646
async.waterfall([
47-
function (callback) {
47+
(callback) => {
4848
data.getDb(callback);
4949
},
50-
function (db, callback) {
51-
fetchVals(db, 0, callback);
50+
(db, callback) => {
51+
fetchVals(db, callback);
5252
},
53-
function (vals) {
53+
(vals) => {
5454
processResponse(req, res, vals);
5555
}
56-
], function (errorMessage) {
56+
], (errorMessage) => {
5757
handleError(req, res, errorMessage);
5858
});
5959
});
6060

61-
router.ws('/', function(ws, req) {
62-
var id = 0;
63-
61+
router.ws('/', (ws, req) => {
6462
function sendLogEvent(logEvent) {
6563
ws.send(logEvent);
66-
};
64+
}
6765

6866
logEmitter.on('logged-event', sendLogEvent);
6967

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,31 @@
1-
'use strict';
1+
(function () {
2+
"use strict";
23

3-
var dbm;
4-
var type;
5-
var seed;
4+
var dbm, type, seed;
65

7-
/**
8-
* We receive the dbmigrate dependency from dbmigrate initially.
9-
* This enables us to not have to rely on NODE_PATH.
10-
*/
11-
exports.setup = function(options, seedLink) {
12-
dbm = options.dbmigrate;
13-
type = dbm.dataType;
14-
seed = seedLink;
15-
};
6+
/**
7+
* We receive the dbmigrate dependency from dbmigrate initially.
8+
* This enables us to not have to rely on NODE_PATH.
9+
*/
10+
module.exports.setup = (options, seedLink) => {
11+
dbm = options.dbmigrate;
12+
type = dbm.dataType;
13+
seed = seedLink;
14+
};
1615

17-
exports.up = function(db, callback) {
18-
db.createTable('log_events', {
19-
id: { type: 'int', primaryKey: true },
20-
eventtype: 'text',
21-
htmltext: 'text',
22-
secs: 'int',
23-
time: 'text',
24-
headers: 'text'
25-
}, callback);
26-
};
16+
module.exports.up = (db, callback) => {
17+
db.createTable('log_events', {
18+
id: { type: 'int', primaryKey: true },
19+
eventtype: 'text',
20+
htmltext: 'text',
21+
secs: 'int',
22+
time: 'text',
23+
headers: 'text'
24+
}, callback);
25+
};
2726

28-
exports.down = function(db, callback) {
29-
db.dropTable('log_events', callback);
30-
};
27+
module.exports.down = (db, callback) => {
28+
db.dropTable('log_events', callback);
29+
};
3130

32-
exports._meta = {
33-
"version": 1
34-
};
31+
}());

package.json

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,37 @@
1111
"test": "echo '=> testing' && istanbul cover _mocha -- --recursive -R spec -r should",
1212
"posttest": "istanbul check-coverage"
1313
},
14-
"engines": {
15-
"node": "^6.10.3"
16-
},
1714
"author": "Andrew Shell <[email protected]>",
1815
"license": "MIT",
1916
"dependencies": {
20-
"async": "^2.4.1",
21-
"body-parser": "^1.17.2",
22-
"console-stamp": "^0.2.5",
23-
"cors": "^2.8.3",
24-
"db-migrate": "^0.10.0-beta.20",
25-
"db-migrate-sqlite3": "^0.2.1",
26-
"express": "^4.15.3",
17+
"async": "^2.6.1",
18+
"body-parser": "^1.18.3",
19+
"console-stamp": "^0.2.7",
20+
"cors": "^2.8.4",
21+
"db-migrate": "^0.11.3",
22+
"db-migrate-sqlite3": "^0.3.1",
23+
"express": "^4.16.3",
2724
"express-handlebars": "^3.0.0",
28-
"express-ws": "^3.0.0",
29-
"moment": "^2.18.1",
30-
"morgan": "^1.8.2",
31-
"nconf": "^0.8.4",
32-
"request": "^2.81.0",
25+
"express-ws": "^4.0.0",
26+
"moment": "^2.22.2",
27+
"morgan": "^1.9.1",
28+
"nconf": "^0.10.0",
29+
"request": "^2.88.0",
3330
"sprintf-js": "^1.1.1",
34-
"sqlite3": "^3.1.8",
35-
"xmlbuilder": "^9.0.0"
31+
"sqlite3": "^4.0.2",
32+
"xmlbuilder": "^10.0.0"
3633
},
3734
"repository": {
3835
"type": "git",
3936
"url": "https://github.com/andrewshell/rsscloud-server.git"
4037
},
4138
"devDependencies": {
42-
"istanbul": "^0.4.0",
43-
"jscs": "^2.5.1",
44-
"jshint": "^2.8.0",
45-
"mocha": "^2.3.3",
46-
"nock": "^2.17.0",
47-
"should": "^7.1.1",
48-
"sinon": "^1.17.2"
39+
"istanbul": "^0.4.5",
40+
"jscs": "^3.0.7",
41+
"jshint": "^2.9.6",
42+
"mocha": "^5.2.0",
43+
"nock": "^9.6.1",
44+
"should": "^13.2.3",
45+
"sinon": "^6.3.4"
4946
}
5047
}

0 commit comments

Comments
 (0)