Some errors fixed, works for api.js
This commit is contained in:
@@ -5,7 +5,8 @@ import cookieParser from 'cookie-parser'
|
||||
import cors from 'cors'
|
||||
|
||||
import indexRouter from './routes/index.js'
|
||||
import apiRouter from './routes/index.js'
|
||||
import { apiRouter } from './routes/api.js'
|
||||
import chartRouter from './routes/chartapi.js'
|
||||
|
||||
const app = express()
|
||||
|
||||
@@ -15,8 +16,9 @@ app.use(express.json())
|
||||
app.use(express.urlencoded({ extended: true }))
|
||||
app.use(cookieParser())
|
||||
|
||||
app.use('/api', apiRouter)
|
||||
app.use('/', indexRouter)
|
||||
app.use('/api', apiRouter)
|
||||
app.use('/chart', chartRouter)
|
||||
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import express from 'express'
|
||||
|
||||
import {getData4map} from "../actions/data4map.js"
|
||||
import * as cTable from "../utilities/commands.js"
|
||||
import * as ERR from "../utilities/errortexts.js"
|
||||
|
||||
export const apiRouter = express.Router();
|
||||
|
||||
|
||||
export const dispatchCommand = async (cmd, table, query, res) => {
|
||||
for (let c of table) {
|
||||
if (c.cmd === cmd) {
|
||||
let erg = await c.func(query)
|
||||
if (typeof erg === 'string') {
|
||||
res.type('text')
|
||||
res.send(erg)
|
||||
} else {
|
||||
res.json(erg)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
res.json({err: ERR.CMNDUNKOWN})
|
||||
}
|
||||
|
||||
// normal routes called from javascript client
|
||||
apiRouter.get('/:cmd', async (req, res) => {
|
||||
await dispatchCommand(req.params.cmd, cTable.cmdTable, req.query, res)
|
||||
})
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import express from 'express'
|
||||
|
||||
import {getData4map} from "../actions/data4map.js"
|
||||
import * as cTable from "../utilities/commands.js"
|
||||
import * as ERR from "../utilities/errortexts.js"
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/* GET home page. */
|
||||
|
||||
// normal routes called from javascript client
|
||||
router.get('/:cmd', async (req, res) => {
|
||||
const cmd = req.params.cmd
|
||||
let table
|
||||
for (let c of cTable.chartcmdTable) {
|
||||
if (c.cmd === cmd) {
|
||||
let erg = await c.func(req.query)
|
||||
if (typeof erg === 'string') {
|
||||
res.type('text')
|
||||
res.send(erg)
|
||||
} else {
|
||||
res.json(erg)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
res.json({err: ERR.CMNDUNKOWN})
|
||||
})
|
||||
|
||||
router.post('/:cmd', async (req, res) => {
|
||||
const cmd = req.params.cmd
|
||||
if (cmd === 'getdata4maps') {
|
||||
const erg = await getData4map(req.body)
|
||||
res.json(erg)
|
||||
} else {
|
||||
res.json({err: ERR.CMNDUNKOWN})
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
||||
+2
-30
@@ -1,43 +1,15 @@
|
||||
import express from 'express'
|
||||
|
||||
import {getData4map} from "../actions/data4map.js"
|
||||
import cmdTable from "../utilities/commands.js"
|
||||
import * as cTable from "../utilities/commands.js"
|
||||
import * as ERR from "../utilities/errortexts.js"
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/* GET home page. */
|
||||
|
||||
router.get('/', function(req, res, next) {
|
||||
res.status(200).json({message: ERR.NOTHIMG})
|
||||
});
|
||||
|
||||
// normal routes called from javascript client
|
||||
router.get('/:cmd', async (req, res) => {
|
||||
const cmd = req.params.cmd
|
||||
for (let c of cmdTable) {
|
||||
if (c.cmd === cmd) {
|
||||
let erg = await c.func(req.query)
|
||||
if (typeof erg === 'string') {
|
||||
res.type('text')
|
||||
res.send(erg)
|
||||
} else {
|
||||
res.json(erg)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
res.json({err: ERR.CMNDUNKOWN})
|
||||
})
|
||||
|
||||
router.post('/:cmd', async (req, res) => {
|
||||
const cmd = req.params.cmd
|
||||
if (cmd === 'getdata4maps') {
|
||||
const erg = await getData4map(req.body)
|
||||
res.json(erg)
|
||||
} else {
|
||||
res.json({err: ERR.CMNDUNKOWN})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
export default router
|
||||
|
||||
+45
-42
@@ -124,11 +124,11 @@ const getLiveData = async (opt) => {
|
||||
//
|
||||
// *********************************************
|
||||
const gethavgData = async (opts, props) => {
|
||||
let e = await getNoiseAVGData(opts)
|
||||
let erg = await getNoiseAVGData(opts)
|
||||
if (opts.csv) {
|
||||
let csvStr = "datetime,n_AVG,peakcount\n"
|
||||
if(!e.err) {
|
||||
for (let item of e) {
|
||||
if(!erg.err) {
|
||||
for (let item of erg.values) {
|
||||
if (item.n_AVG != -1) {
|
||||
csvStr += item.datetime + ',' + item.n_AVG + ',' + item.peakcount + '\n'
|
||||
}
|
||||
@@ -136,7 +136,7 @@ const gethavgData = async (opts, props) => {
|
||||
}
|
||||
return csvStr
|
||||
} else {
|
||||
return {err: e.err, values: e.values}
|
||||
return {err: erg.err, values: erg.values}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -172,18 +172,19 @@ async function getdavgData(opts) {
|
||||
let val = [];
|
||||
let csvStr = 'datetime,n_AVG,peakcount\n';
|
||||
if(!erg.err) {
|
||||
for (let i = 0; i < erg.length; i += 24) {
|
||||
for (let i = 0; i < erg.values.length; i += 24) {
|
||||
let sum = 0;
|
||||
let count = 0;
|
||||
let pk = 0;
|
||||
let werte = {};
|
||||
for (let k = 0; k < 24; k++) {
|
||||
if ((erg[i + k] != null) && (erg[i + k].n_sum != -1)) {
|
||||
sum += erg[i + k].n_sum;
|
||||
count += erg[i + k].count;
|
||||
pk += erg[i + k].peakcount;
|
||||
const item = erg.values[i + k]
|
||||
if ((item != null) && (item.n_sum != -1)) {
|
||||
sum += item.n_sum;
|
||||
count += item.count;
|
||||
pk += item.peakcount;
|
||||
if (werte.datetime === undefined) {
|
||||
let dt = DateTime.fromISO(erg[i + k].datetime, {zone: 'utc'})
|
||||
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
|
||||
werte.datetime = dt.startOf('day').toISO()
|
||||
}
|
||||
}
|
||||
@@ -241,32 +242,33 @@ async function getdaynightData(opts) {
|
||||
if(!erg.err) {
|
||||
let done = false;
|
||||
let dt;
|
||||
// The received houerly data array always (!!) starts at 0h00 local (!) time.
|
||||
// The received hourly data array always (!!) starts at 0h00 local (!) time.
|
||||
// So to calculate day values, we skip the first 6 hour and start from there
|
||||
// now we add 16 hour for day and following 8 hour for night
|
||||
for (let i = 6; i < erg.length;) {
|
||||
for (let i = 6; i < erg.values.length;) {
|
||||
let dsum = 0, dcnt = 0;
|
||||
let nsum = 0, ncnt = 0;
|
||||
let werte = {};
|
||||
const item = erg.values[i]
|
||||
for (let k = 0; k < 16; k++, i++) {
|
||||
if (erg[i].n_sum != -1) {
|
||||
if (item.n_sum != -1) {
|
||||
if (werte.datetime === undefined) {
|
||||
let dt = DateTime.fromISO(erg[i].datetime, {zone: 'utc'})
|
||||
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
|
||||
werte.datetime = dt.startOf('day').toISO()
|
||||
}
|
||||
dsum += erg[i].n_sum;
|
||||
dcnt += erg[i].count;
|
||||
dsum += item.n_sum;
|
||||
dcnt += item.count;
|
||||
}
|
||||
}
|
||||
if (i < (erg.length - 8)) {
|
||||
if (i < (erg.values.length - 8)) {
|
||||
for (let k = 0; k < 8; k++, i++) {
|
||||
if (erg[i].n_sum != -1) {
|
||||
if (item.n_sum != -1) {
|
||||
if (werte.datetime === undefined) {
|
||||
let dt = DateTime.fromISO(erg[i].datetime, {zone: 'utc'})
|
||||
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
|
||||
werte.datetime = dt.startOf('day').toISO()
|
||||
}
|
||||
nsum += erg[i].n_sum;
|
||||
ncnt += erg[i].count;
|
||||
nsum += item.n_sum;
|
||||
ncnt += item.count;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -343,38 +345,39 @@ async function getLdenData(opts) {
|
||||
// So to calculate day values, we skip the first 6 hour and start from there
|
||||
// now we add 12 hour for day and following 4 hour for evening and
|
||||
// additional 8 hours for night
|
||||
for (let i = 6; i < erg.length;) {
|
||||
for (let i = 6; i < erg.values.length;) {
|
||||
let dsum = 0, dcnt = 0;
|
||||
let nsum = 0, ncnt = 0;
|
||||
let esum = 0, ecnt = 0;
|
||||
let werte = {};
|
||||
let dayAVG = 0, evnAVG = 0, nightAVG = 0;
|
||||
const item = erg.values[i]
|
||||
for (let k = 0; k < 12; k++, i++) {
|
||||
if (erg[i].n_sum != -1) {
|
||||
if (item.n_sum != -1) {
|
||||
if (werte.datetime == undefined) {
|
||||
werte.datetime = erg[i].datetime;
|
||||
werte.datetime = item.datetime;
|
||||
}
|
||||
dsum += erg[i].n_sum;
|
||||
dcnt += erg[i].count;
|
||||
dsum += item.n_sum;
|
||||
dcnt += item.count;
|
||||
}
|
||||
}
|
||||
for (let k = 0; k < 4; k++, i++) {
|
||||
if (erg[i].n_sum != -1) {
|
||||
if (item.n_sum != -1) {
|
||||
if (werte.datetime == undefined) {
|
||||
werte.datetime = erg[i].datetime;
|
||||
werte.datetime = item.datetime;
|
||||
}
|
||||
esum += erg[i].n_sum;
|
||||
ecnt += erg[i].count;
|
||||
esum += item.n_sum;
|
||||
ecnt += item.count;
|
||||
}
|
||||
}
|
||||
if (i < (erg.length - 8)) {
|
||||
if (i < (erg.values.length - 8)) {
|
||||
for (let k = 0; k < 8; k++, i++) {
|
||||
if (erg[i].n_sum != -1) {
|
||||
if (item.n_sum != -1) {
|
||||
if (werte.datetime == undefined) {
|
||||
werte.datetime = erg[i].datetime;
|
||||
werte.datetime = item.datetime;
|
||||
}
|
||||
nsum += erg[i].n_sum;
|
||||
ncnt += erg[i].count;
|
||||
nsum += item.n_sum;
|
||||
ncnt += item.count;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -488,18 +491,18 @@ peak = data
|
||||
// hour in an element in docs becomes the index into the new array (for every new day this
|
||||
// index will be incremented by 24). Missing values are marked by: {n_sum=-1, n_AVG=-1}.
|
||||
let hoursArr = new Array(opts.span * 24); // generate new array
|
||||
hoursArr.fill(emptyValues); // fill array with 'empty' values
|
||||
let startDay = DateTime.fromISO(ret.values[0].datetime, {zone: 'utc'}).get('day'); // calc first day
|
||||
let k = 0;
|
||||
hoursArr.fill(emptyValues) // fill array with 'empty' values
|
||||
let startDay = DateTime.fromISO(ret.values[0].datetime, {zone: 'utc'}).get('day') // calc first day
|
||||
let k = 0
|
||||
for (let d of ret.values) { // loop through docs
|
||||
let stunde = DateTime.fromISO(d.datetime, {zone: 'utc'}).get('hour') // get current hour
|
||||
let day = DateTime.fromISO(d.datetime, {zone: 'utc'}).get('day') // get current day
|
||||
if (day != startDay) { // if date has changed
|
||||
k += 24; // increment index by 24
|
||||
startDay = day;
|
||||
k += 24 // increment index by 24
|
||||
startDay = day
|
||||
}
|
||||
hoursArr[k+stunde] = d; // copy date into hourArray
|
||||
hoursArr[k+stunde] = d // copy date into hourArray
|
||||
}
|
||||
return hoursArr;
|
||||
return { err: ret.err, values: hoursArr}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
// Prepare all data to plt the charts
|
||||
|
||||
+11
-2
@@ -8,7 +8,7 @@ import * as radioact from "../sensorspecials/radioact.js"
|
||||
import * as noise from "../sensorspecials/noise.js"
|
||||
import {getData4map} from "../actions/data4map.js";
|
||||
|
||||
const cmdTable = [
|
||||
export const cmdTable = [
|
||||
{cmd: 'getactdata', func: getData.getActData},
|
||||
{cmd: 'getlongavg', func: getData.getLongAvg},
|
||||
{cmd: 'getavgdata', func: getData.getAvgData},
|
||||
@@ -19,4 +19,13 @@ const cmdTable = [
|
||||
{cmd: 'getmapdata', func: getData4map}
|
||||
]
|
||||
|
||||
export default cmdTable
|
||||
export const chartcmdTable = [
|
||||
{cmd: 'getactdata', func: getData.getActData},
|
||||
{cmd: 'getlongavg', func: getData.getLongAvg},
|
||||
{cmd: 'getavgdata', func: getData.getAvgData},
|
||||
{cmd: 'getoneproperty', func: getProps.getOneProperty},
|
||||
{cmd: 'getakwdata', func: getAKWs.getakwdata},
|
||||
{cmd: 'getaddress', func: holAddr.getAddress},
|
||||
{cmd: 'getsensordata', func: getData.getChartSensorData},
|
||||
{cmd: 'getmapdata', func: getData4map}
|
||||
]
|
||||
Reference in New Issue
Block a user