WIP
This commit is contained in:
parent
7c15ce0ae8
commit
8734849511
4 changed files with 37 additions and 19 deletions
|
|
@ -1,9 +1,9 @@
|
|||
'use strict';
|
||||
|
||||
var uuid = require('node-uuid')
|
||||
var _ = require('lodash');
|
||||
var async = require('async');
|
||||
var logger = require('./logger');
|
||||
|
||||
var argv = require('minimist')(process.argv.slice(2));
|
||||
|
||||
var SATOSHI_FACTOR = 1e8;
|
||||
|
|
@ -323,7 +323,18 @@ exports.stateChange = function stateChange(session, rec, cb) {
|
|||
fingerprint: session.fingerprint,
|
||||
eventType: 'stateChange',
|
||||
note: JSON.stringify({state: rec.state, sessionId: session.id}),
|
||||
deviceTime: rec.deviceTime
|
||||
deviceTime: session.deviceTime
|
||||
}
|
||||
db.machineEvent(rec, cb)
|
||||
};
|
||||
|
||||
exports.recordPing = function recordPing(session, rec, cb) {
|
||||
var rec = {
|
||||
id: uuid.v4(),
|
||||
fingerprint: session.fingerprint,
|
||||
eventType: 'ping',
|
||||
note: JSON.stringify({state: rec.state, sessionId: session.id}),
|
||||
deviceTime: session.deviceTime
|
||||
}
|
||||
db.machineEvent(rec, cb)
|
||||
};
|
||||
|
|
|
|||
|
|
@ -100,17 +100,6 @@ exports.recordBill = function recordBill(session, rec, cb) {
|
|||
});
|
||||
};
|
||||
|
||||
exports.recordDeviceEvent = function recordDeviceEvent(session, event) {
|
||||
connect(function(cerr, client, done) {
|
||||
if (cerr) return;
|
||||
var sql = 'INSERT INTO device_events (device_fingerprint, event_type, ' +
|
||||
'note, device_time) VALUES ($1, $2, $3, $4)';
|
||||
var values = [session.fingerprint, event.eventType, event.note,
|
||||
event.deviceTime];
|
||||
client.query(sql, values, done);
|
||||
});
|
||||
};
|
||||
|
||||
function query(client, queryStr, values, cb) {
|
||||
if (!cb) {
|
||||
cb = values;
|
||||
|
|
@ -514,11 +503,20 @@ exports.cartridgeCounts = function cartridgeCounts(session, cb) {
|
|||
};
|
||||
|
||||
exports.machineEvent = function machineEvent(rec, cb) {
|
||||
var TTL = 2 * 60 * 60 * 1000
|
||||
connect(function(cerr, client, done) {
|
||||
if (cerr) return cb(cerr);
|
||||
var sql = 'insert into machine_events (id, device_fingerprint, event_type, note, device_time) ' +
|
||||
'VALUES (?, ?, ?, ?, ?)';
|
||||
var values = [rec.id, rec.fingerprint, rec.eventType, rec.note, rec.deviceTime]
|
||||
var fields = ['id', 'device_fingerprint', 'event_type', 'note', 'device_time', 'created']
|
||||
var sql = getInsertQuery('machine_events', fields, false)
|
||||
var values = [rec.id, rec.fingerprint, rec.eventType, rec.note, rec.deviceTime, new Date().toISOString()]
|
||||
|
||||
var deleteSql = 'DELETE FROM machine_events WHERE created < $1';
|
||||
var deleteValues = [new Date(Date.now() - TTL).toISOString()];
|
||||
|
||||
query(client, deleteSql, deleteValues, function(err) {
|
||||
if (err) console.error(err)
|
||||
})
|
||||
|
||||
query(client, sql, values, function(err, results) {
|
||||
done();
|
||||
return cb(err, results);
|
||||
|
|
|
|||
|
|
@ -78,6 +78,10 @@ function poll(req, res) {
|
|||
|
||||
res.json(response);
|
||||
});
|
||||
|
||||
plugins.recordPing(session(req), req.query, function(err) {
|
||||
if (err) console.error(err);
|
||||
});
|
||||
}
|
||||
|
||||
function trade(req, res) {
|
||||
|
|
@ -89,6 +93,7 @@ function trade(req, res) {
|
|||
|
||||
function stateChange(req, res) {
|
||||
plugins.stateChange(session(req), req.body, function(err) {
|
||||
if (err) console.error(err)
|
||||
res.json(200)
|
||||
})
|
||||
}
|
||||
|
|
@ -211,7 +216,11 @@ function init(localConfig) {
|
|||
}
|
||||
|
||||
function session(req) {
|
||||
return {fingerprint: getFingerprint(req), id: req.get('session-id')};
|
||||
return {
|
||||
fingerprint: getFingerprint(req),
|
||||
id: req.get('session-id'),
|
||||
deviceTime: Date.parse(req.get('date'))
|
||||
};
|
||||
}
|
||||
|
||||
function getFingerprint(req) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue