SilvrAPI/routes/weight.js

117 lines
2.4 KiB
JavaScript
Raw Normal View History

2015-11-09 13:52:03 +00:00
var express = require('express'), fs = require('fs'), sqlite3 = require('sqlite3').verbose();
var router = express.Router();
var weight_db;
var file = process.env.DB_HOME + '/' + "weight.db";
/* GET users listing. */
function createWeightDB() {
console.log('Creating Weight db...');
console.log(file);
if (!fs.existsSync(file)) {
console.log('creating db file');
fs.openSync(file,'w');
weight_db = new sqlite3.Database(file, createWeightTable);
weight_db.close();
}
}
function connectWeightDB() {
"use strict";
console.log('Connect db.');
weight_db = new sqlite3.Database(file);
}
function createWeightTable() {
console.log('Creating weight table...');
weight_db.run('CREATE TABLE IF NOT EXISTS weight (date text, reading real);');
}
function closeWeightDB() {
"use strict";
console.log('Closing db.');
weight_db.close();
}
function insertWeightReading(time, reading) {
console.log('Inserting reading:' + reading);
// var sql = db.prepare('INSERT into temperature(date, reading) VALUES
// (?,?)',[time],[reading]);
weight_db.run('BEGIN TRANSACTION');
weight_db.run('INSERT into weight(date, reading) VALUES (?,?)',[time, reading]);
weight_db.run('END');
}
router.get('/', function(req, res, next) {
var now = new Date();
var t = req.query;
if (req.query != {} && req.query.weight != null)
{
// createDB();
console.log(req.query);
connectWeightDB();
insertWeightReading(now.toJSON(),parseFloat(req.query.weight) );
closeWeightDB();
res.writeHead(200, {"ContentType": "application/json"});
//res.send(JSON.stringify(t));
res.end(JSON.stringify(t));
} else
{
res.render('weight', { });
}
});
router.get('/all', function(req, res, next) {
"use strict";
console.log('Selecint all..');
connectWeightDB();
weight_db.all('SELECT * from weight', function(err, rows) {
var out = [];
console.log(err);
console.log(rows);
rows.forEach(function (row) {
console.log(row.date + ', ' + row.reading);
// var t = ;
// out.push({"date": Date(row.date), "reading":row.reading});
out.push({"date": row.date, "reading":row.reading});
});
res.writeHead(200, {"ContentType": "application/json"});
//res.send(JSON.stringify(t));
res.end(JSON.stringify(out));
closeWeightDB();
});
});
module.exports = router;
createWeightDB();