From b6a8b1706c2d8f11cad953f6ee1737a58eccecc8 Mon Sep 17 00:00:00 2001 From: rxf Date: Tue, 4 Apr 2023 10:38:01 +0200 Subject: [PATCH] *** WIP WIP *** some smaller changes --- actions/getproperties.js | 2 +- databases/mongo.js | 197 ++--------------------------------- sensorspecials/noiseChart.js | 2 +- utilities/chartoptions.js | 1 - 4 files changed, 12 insertions(+), 190 deletions(-) diff --git a/actions/getproperties.js b/actions/getproperties.js index 920053c..7c44fbf 100644 --- a/actions/getproperties.js +++ b/actions/getproperties.js @@ -31,7 +31,7 @@ export const getOneProperty = async (params) => { // now find sensors with same location let query = {"location.0.id": pp.properties.location[0].id} let others = await readProperties(query) - if (others.error) { + if (others.err) { return returnOnError(properties, ERR.NOPROPSREAD.replace('xx',others.errortext), getOneProperty.name) } if (others.properties.length > 0) { diff --git a/databases/mongo.js b/databases/mongo.js index 203f6fd..9410104 100644 --- a/databases/mongo.js +++ b/databases/mongo.js @@ -25,9 +25,6 @@ if (MONGOAUTH === 'true') { export const properties_collection = 'pptest' -let statistics = {} -let client - export const connectMongo = async () => { try { logit(`Try to connect to ${MONGO_URL}`) @@ -41,10 +38,6 @@ export const connectMongo = async () => { } } -export const closeMongo = async (client) => { - client.close() -} - const listDatabases = async (client) => { let databasesList = await client.db().admin().listDatabases(); @@ -59,7 +52,7 @@ const listDatabases = async (client) => { // Read properties from the database export const readProperties = async (query, limit = 0) => { let ret = {err: null, properties: null} - client = await connectMongo() + let client = await connectMongo() try { if ("sid" in query) { // if sid is given, read property for sid ret.properties = await client.db(MONGOBASE).collection(properties_collection).findOne({_id: query.sid}) @@ -70,8 +63,7 @@ export const readProperties = async (query, limit = 0) => { ret.err = e } finally { - await closeMongo(client) - client = null + client.close() } return ret } @@ -79,15 +71,14 @@ export const readProperties = async (query, limit = 0) => { // read mapdata from database export const readMapdata = async (query, limit) => { let ret = {err: null, mapdata: []} - client = await connectMongo() + let client = await connectMongo() try { ret.mapdata = await client.db(MONGOBASE).collection("mapdata").find(query).limit(limit).toArray() } catch (e) { ret.err = e } finally { - await closeMongo(client) - client = null + client.close() } return ret } @@ -95,7 +86,7 @@ export const readMapdata = async (query, limit) => { export const getallProperties = async (coll, query) => { let ret = {err: null, properties: []} - client = await connectMongo() + let client = await connectMongo() try { ret.properties = await client.db(MONGOBASE).collection(coll) .find(query).toArray() @@ -103,8 +94,7 @@ export const getallProperties = async (coll, query) => { ret.err = e } finally { - await closeMongo(client) - client = null + client.close() } return ret } @@ -112,7 +102,7 @@ export const getallProperties = async (coll, query) => { export const getOneproperty = async (sid) => { let ret = {error: false} - client = await connectMongo() + let client = await connectMongo() try { ret.properties = await client.db(MONGOBASE).collection("properties_collection") .findOne({_id: sid}) @@ -120,125 +110,16 @@ export const getOneproperty = async (sid) => { ret = {error: true, errortext: e} } finally { - await closeMongo(client) - client = null + client.close() } return ret } -export const doAggregate = async (coll, query, conn, clos) => { - let ret = {error: false} - if (conn) { - client = await connectMongo() - } - try { - ret.values = await client.db(MONGOBASE).collection(coll).aggregate(query).toArray() - } catch (e) { - ret = {error: true, errortext: e} - } - finally { - if (clos) { - await closeMongo(client) - client = null - } - } - return ret -} - - -export const writeOneproperty = async (client, prop) => { - try { - let result = await client.db(MONGOBASE).collection("properties_collection") - .insertOne(prop) - } catch(e) { - if (e.code === 11000) { - return false - } else { - throw(e) - } - } - return true -} - -export const writeProperties = async (client, props) => { - let start = DateTime.now(); - if (props.new.length !== 0) { - try { - let result = await client.db(MONGOBASE).collection("properties_collection") - .insertMany(props.new) - } catch (e) { - console.error(e) - } - } - if (props.loc.length !== 0) { - try { - for (let item of props.loc) { - let result = await client.db(MONGOBASE).collection("properties_collection") - .updateOne({_id: item._id}, { - $set: {location_id: item.location_id}, - $push: {location: { $each: [item.location[0]], $position: 0}} - }) - } - } catch (e) { - console.error(e) - } - } - if (props.sname.lenth !== 0) { - try { - for (let item of props.sname) { - let result = await client.db(MONGOBASE).collection("properties_collection") - .updateOne({_id: item._id}, { - $set: {name: item.name, since: item.since} - }) - } - } catch (e) { - console.error(e) - } - } - statistics.writePropsTime = DateTime.now().diff(start, ['seconds']).toObject().seconds - logit(`Write properties to mongoDB: ${statistics.writePropsTime} sec.`) -} - -export const writeDataArray = async (data, collection, conn, clos) => { - let start = DateTime.now(); - let result - if (conn) { - client = await connectMongo() - } - try { - result = await client.db(MONGOBASE).collection(collection) - .insertMany(data) - } catch (e) { - console.error(e) - } finally { - if(clos) { - await closeMongo(client) - client = null - } - } - statistics.writeDataTime = DateTime.now().diff(start, ['seconds']).toObject().seconds - logit(`Write Data to mongoDB: ${statistics.writeDataTime} sec.`) - return result -} - -export const writeStatistic = async (client, stat) => { - let start = DateTime.now(); - let entry = { timestamp: new Date(), ...stat } - try { - let result = await client.db(MONGOBASE).collection("statistics") - .insertOne(entry) - } catch (e) { - console.error(e) - } - statistics.writeStatisticTime = DateTime.now().diff(start, ['seconds']).toObject().seconds - logit(`Write statistics to mongoDB: ${statistics.writeStatisticTime} sec.`) -} - export const readAKWs = async (options) => { let ret = {values: { akws: [], th1_akws: []}, err: null} let erg = [] - client = await connectMongo() + let client = await connectMongo() try { let docs = await client.db(MONGOBASE).collection("akws") .find().toArray() @@ -258,65 +139,7 @@ export const readAKWs = async (options) => { return returnOnError(ret, e, readAKWs.name) } finally { - await closeMongo(client) - client = null + client.close() } return ret } - -/* -async function getMAPaktData(db,opt) { - let box = opt.box; - if ((box == "") || (box == undefined)) { - return {"avgs": [], "lastDate": null}; - } - var south = parseFloat(box[0][1]); - var north = parseFloat(box[1][1]); - var east = parseFloat(box[1][0]); - var west = parseFloat(box[0][0]); - var collection = db.collection('mapdata'); // use the mapdata collection - var aktData = []; - var now = moment(); - var lastDate = 0; - let loc; - loc = { - location: { - $geoWithin: { - $box: [ - [west, south], - [east, north] - ] - } - }, - name: { $regex : "^Laerm|^DNMS"}, - } - let docs = await collection.find(loc).toArray(); -// console.log(docs); - for (var i = 0; i < docs.length; i++) { - var item = docs[i]; - var oneAktData = {}; - oneAktData['location'] = item.location.coordinates; - oneAktData['id'] = item._id; // ID des Sensors holen - oneAktData['lastSeen'] = item.values.datetime; - oneAktData['indoor'] = item.indoor; - var dati = item.values.datetime; - var dt = new Date(dati); - if ((now - dt) >= 31 * 24 * 3600 * 1000) { // älter als 1 Monat -> - oneAktData['noise_max'] = -2; // -2 zurückgeben - } else if ((now - dt) >= 3600 * 1000) { // älter als 1 Stunde -> - oneAktData['noise_max'] = -1; // -1 zurückgeben - } else { - oneAktData['noise_max'] = -5; // bedutet -> nicht anzeigen - if (item.values.hasOwnProperty('noise_LA_max')) { - oneAktData['noise_max'] = item.values.noise_LA_max.toFixed(0); // und merken - } - if (dati > lastDate) { - lastDate = dati; - } - } - aktData.push(oneAktData); // dies ganzen Werte nun in das Array - } - return {"avgs": aktData, "lastDate": lastDate}; // alles bearbeitet _> Array senden -}; - - */ diff --git a/sensorspecials/noiseChart.js b/sensorspecials/noiseChart.js index 9cd0347..3ee3494 100644 --- a/sensorspecials/noiseChart.js +++ b/sensorspecials/noiseChart.js @@ -386,7 +386,7 @@ export const dayNightData = (params, values) => { let options = utils.createGlobObtions() // options.xAxis.plotBands = utils.calcWeekends(data, true) options.xAxis.tickInterval = 24 * 3600 * 1000 - options.xAxis.title = 'Date' + options.xAxis.title.text = 'Date' // options.xAxis.labels = { // formatter: function () { // return this.axis.defaultLabelFormatter.call(this); diff --git a/utilities/chartoptions.js b/utilities/chartoptions.js index f7f9852..085914f 100644 --- a/utilities/chartoptions.js +++ b/utilities/chartoptions.js @@ -8,7 +8,6 @@ export function createGlobObtions() { let globObject = { chart: { height: 600, -// width: 1000, spacingRight: 20, spacingLeft: 20, spacingTop: 25,