60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
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}
|
|
}
|
|
} |