kopia lustrzana https://github.com/manuelkasper/sotlas-api
Check that latest solar data is not stale
rodzic
1c6b72ff35
commit
75bd6507d7
17
solardata.js
17
solardata.js
|
@ -1,5 +1,6 @@
|
||||||
const express = require('express')
|
const express = require('express')
|
||||||
const {check, validationResult} = require('express-validator')
|
const {check, validationResult} = require('express-validator')
|
||||||
|
const moment = require('moment')
|
||||||
const config = require('./config')
|
const config = require('./config')
|
||||||
const db = require('./db')
|
const db = require('./db')
|
||||||
|
|
||||||
|
@ -13,11 +14,11 @@ router.get('/:date/:hour',
|
||||||
|
|
||||||
db.getDb().collection('solardata').findOne({date: req.params.date, hour: req.params.hour}, (err, solardata) => {
|
db.getDb().collection('solardata').findOne({date: req.params.date, hour: req.params.hour}, (err, solardata) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.status(500).end();
|
return res.status(500).end()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!solardata) {
|
if (!solardata) {
|
||||||
return res.status(404).end();
|
return res.status(404).end()
|
||||||
}
|
}
|
||||||
|
|
||||||
delete solardata._id
|
delete solardata._id
|
||||||
|
@ -31,13 +32,19 @@ router.get('/:date/:hour',
|
||||||
router.get('/latest', (req, res) => {
|
router.get('/latest', (req, res) => {
|
||||||
db.getDb().collection('solardata').find().sort({date: -1, hour: -1}).limit(1).toArray((err, solardataArr) => {
|
db.getDb().collection('solardata').find().sort({date: -1, hour: -1}).limit(1).toArray((err, solardataArr) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.status(500).end();
|
return res.status(500).end()
|
||||||
}
|
}
|
||||||
|
|
||||||
let solardata = solardataArr[0]
|
let solardata = solardataArr[0]
|
||||||
|
|
||||||
if (!solardata) {
|
if (!solardata) {
|
||||||
return res.status(404).end();
|
return res.status(404).end()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that the data is not older than 4 hours
|
||||||
|
let solardataMoment = moment.utc(solardata.date + "T" + solardata.hour.toString().padStart(2, '0'))
|
||||||
|
if (moment.utc().diff(solardataMoment, 'hours') > 4) {
|
||||||
|
console.log('too old')
|
||||||
}
|
}
|
||||||
|
|
||||||
delete solardata._id
|
delete solardata._id
|
||||||
|
@ -59,7 +66,7 @@ router.post('/:date/:hour',
|
||||||
return res.status(401).end()
|
return res.status(401).end()
|
||||||
}
|
}
|
||||||
|
|
||||||
const errors = validationResult(req);
|
const errors = validationResult(req)
|
||||||
if (!errors.isEmpty()) {
|
if (!errors.isEmpty()) {
|
||||||
return res.status(400).json({errors: errors.array()})
|
return res.status(400).json({errors: errors.array()})
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue