165 lines
4.7 KiB
JavaScript
165 lines
4.7 KiB
JavaScript
// var dbFile = "/usr/db/data.db";
|
|
var dbFile = "/home/pi/data.db";
|
|
// var dbFile = '/Users/patrickjmcd/data.db';
|
|
|
|
exports.getAllTags = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "SELECT * FROM tags WHERE deleted = 0";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.all(function(err, rows) {
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK", tags:rows});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.createTag = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "INSERT INTO tags (tagName, units, minExpected, maxExpected, vanityName, description) VALUES (?, ?, ?, ?, ?, ?)";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.run(req.body.tagName, req.body.units, req.body.minExpected, req.body.maxExpected, req.body.vanityName, req.body.description, function(err){
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK"});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.getTag = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "SELECT * FROM tags WHERE id = ?";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.all(req.params.id, function(err, rows) {
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK", tags:rows});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.updateTag = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "UPDATE tags set tagName = ?, units = ?, minExpected = ?, maxExpected = ?, vanityName = ?, description = ? WHERE id = ?";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.run(req.body.tagName, req.body.units, req.body.minExpected, req.body.maxExpected, req.body.vanityName, req.body.description, req.body.id, function(err) {
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK"});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.deleteTag = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "UPDATE tags SET deleted = 1 WHERE id = ?";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.run(req.params.tag, function(err) {
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK"});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.seriesTagValues = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "SELECT * FROM vals WHERE tagID = ? AND dateAdded > DATETIME('now', '-1 HOUR')";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.all(parseInt(req.params.tag), function(err, rows){
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err){
|
|
console.log(err);
|
|
res.json({status:"error", message:err, query:query});
|
|
} else {
|
|
res.json({status:"OK", tag: req.params.tag, vals:rows});
|
|
}
|
|
})
|
|
});
|
|
};
|
|
|
|
exports.latestValueSingleTag = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "SELECT * FROM vals WHERE id = (SELECT MAX(id) FROM vals WHERE tagID = ?)";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.all(req.params.tag, function(err, rows) {
|
|
console.log(rows);
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK", tag_val:rows[0]});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.latestValueAllTags = function(req, res){
|
|
var sqlite3 = require('sqlite3').verbose();
|
|
var db = new sqlite3.Database(dbFile);
|
|
|
|
db.serialize(function(){
|
|
var query = "SELECT t.tagName as tagName, t.vanityName as vanityName, t.description as description, t.units as units, t.id as t_id, t.minExpected as min, t.maxExpected as max, MAX(v.id) as v_id, v.val as val, v.dateAdded as dtime FROM vals v JOIN tags t ON v.tagID = t.id WHERE t.deleted = 0 GROUP BY v.tagID";
|
|
var prepQuery = db.prepare(query);
|
|
prepQuery.all(req.params.id, function(err, rows) {
|
|
prepQuery.finalize();
|
|
db.close();
|
|
if (err) {
|
|
res.json({status:"error", message:err});
|
|
console.log(err);
|
|
} else {
|
|
res.json({status:"OK", vals:rows});
|
|
}
|
|
});
|
|
});
|
|
};
|