Files
lsp/db/mongoose_dbcontroller.js
Arnaud Nelissen 3af7ddab06 Initial commit
2021-11-17 11:25:08 +01:00

167 lines
4.1 KiB
JavaScript

const Collection = require('mongodb').MongoClient;
const mongoose = require('mongoose');
const mongodb_hostname = process.env.MONGODB_HOST || 'localhost';
const mongodb_port = process.env.MONGODB_PORT || 27017;
const mongodb_database = process.env.MONGODB_DATABASE || 'lsp';
const mongodb_url = 'mongodb://' + mongodb_hostname + ':' + mongodb_port;
const db = mongoose.connection;
const bucketMaxSize = 1000;
var _db;
var _data = Collection();
var _ipx_data;
var _events;
var _alerts;
var days = function(date) {
const complete = new Date(1000 * date);
const days = new Date(complete.toDateString())
return days;
}
var init = function (callback) {
mongoose.connect(mongodb_url, { useNewUrlParser: true, useUnifiedTopology: true });
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
// we're connected!
if (callback) callback(null);
});
// client.connect(function (err) {
// if (err) {
// if (callback) callback({ error: "Error connecting to DB: " + err })
// }
// else {
// _db = client.db(mongodb_database);
// _data = _db.collection('data');
// _ipx_data = _db.collection('ipx-data');
// _events = _db.collection('events');
// _alerts = _db.collection('alerts');
// ////////////////////////////
// // FLUSH DB BY UNCOMMENTING
// // _data.remove(function(err, objects){});
// // _ipx_data.remove(function(err, objects){});
// // _events.remove(function(err, objects){});
// // _alerts.remove(function(err, objects){});
// if (callback) callback(null);
// }
// });
}
var addData = function (relay, device, element, callback) {
// const query = {
// device: device,
// date: days(element.date),
// bucketSize: { $lt: bucketMaxSize },
// };
// const data = {
// index: element.index,
// value: element.value,
// date: new Date(1000 * element.date)
// };
// const update = {
// $push: {
// data: data
// },
// $min: { min: data.value },
// $max: { max: data.value },
// $inc: { bucketSize: 1 },
// };
// const options = {
// upsert: true
// };
// _data.updateOne(query, update, options, function (err, result) {
// if (callback) { callback(err, result); }
// });
}
var addEvent = function (relay, device, element, callback) {
// const query = {
// device: device,
// day: days(element.date),
// bucketSize: { $lt: bucketMaxSize },
// };
// const event = {
// index: element.index,
// value: element.value,
// type: element.type,
// date: new Date(1000 * element.date)
// };
// const update = {
// $push: {
// events: event
// },
// $min: { first: event.date },
// $max: { last: event.date },
// $inc: { bucketSize: 1 },
// };
// const options = {
// upsert: true
// };
// _events.updateOne(query, update, options, function (err, result) {
// if (callback) { callback(err, result); }
// });
}
var addAlert = function (relay, device, element, callback) {
// const object = {
// relay: relay,
// device: device,
// date: new Date(1000 * element.date),
// alert: element.alerts
// };
// _alerts.insertOne(object, function (err, result) {
// if (callback) { callback(err, result); }
// });
}
var addIPXData = function (relay, device, child, element, callback) {
// const query = {
// child: child,
// date: days(element.timestamp),
// bucketSize: { $lt: bucketMaxSize },
// };
// const data = {
// date: new Date(1000 * element.timestamp),
// tags: element.tags
// };
// const update = {
// $push: {
// data: data
// },
// $min: { first: data.date },
// $max: { last: data.date },
// $inc: { bucketSize: 1 },
// };
// const options = {
// upsert: true
// };
// _ipx_data.updateOne(query, update, options, function (err, result) {
// if (callback) { callback(err, result); }
// });
}
exports.init = init
exports.addData = addData
exports.addEvent = addEvent
exports.addAlert = addAlert
exports.addIPXData = addIPXData