import { MongoClient } from 'mongodb'; import dotenv from 'dotenv'; dotenv.config(); const MONGOHOST = process.env.MONGOHOST || 'localhost' const MONGOPORT = process.env.MONGOPORT || 27017 const MONGOAUTH = process.env.MONGOAUTH || false const MONGOUSRP = process.env.MONGOUSRP || '' const MONGOBASE = process.env.MONGOBASE || 'sensor_data' let MONGO_URL = 'mongodb://'+MONGOHOST+':'+MONGOPORT; // URL to mongo database if (MONGOAUTH === 'true') { MONGO_URL = 'mongodb://'+MONGOUSRP+'@' + MONGOHOST + ':' + MONGOPORT + '/?authSource=admin'; // URL to mongo database } const DB_NAME = MONGOBASE let db, usersCollection, prop_fluxCollection, propertiesCollection; let client = null; export async function initMongo() { const client = new MongoClient(MONGO_URL); await client.connect(); db = client.db(DB_NAME); usersCollection = db.collection('users'); prop_fluxCollection = db.collection('prop_flux'); propertiesCollection = db.collection('properties') return { db, usersCollection, prop_fluxCollection, propertiesCollection}; } export const clientClose = async () => { if (client) { client.close() } } export function getCollections() { return { db, usersCollection, prop_fluxCollection, propertiesCollection}; } export const update_pflux = async(sn, doc) => { try { await prop_fluxCollection.updateOne({_id: sn},{ $set: { 'chip': doc}}) return {"error": null} } catch (e) { return { "error": true, "what": e} } } export const get_pflux = async(sn) => { try { let r = await prop_fluxCollection.findOne({_id: sn}) if (r == null) { return { "error": true, "what": "Not found", "erg": r} } return {"error": null, "what": null, "erg": r} } catch (e) { return { "error": true, "what": e, "erg": null} } }