Add endpoint to obtain historic solar data

master
Manuel Kasper 2022-04-22 15:44:59 +02:00
rodzic ea3e3fc456
commit c79b215b2d
1 zmienionych plików z 38 dodań i 22 usunięć

Wyświetl plik

@ -7,28 +7,6 @@ const db = require('./db')
let router = express.Router()
module.exports = router
router.get('/:date/:hour',
check("date").matches(/^\d\d\d\d-\d\d-\d\d$/),
check("hour").isInt({gt: -1, lt: 24}),
(req, res) => {
db.getDb().collection('solardata').findOne({date: req.params.date, hour: req.params.hour}, (err, solardata) => {
if (err) {
return res.status(500).end()
}
if (!solardata) {
return res.status(404).end()
}
delete solardata._id
delete solardata.date
delete solardata.hour
return res.json(solardata)
})
})
router.get('/latest', (req, res) => {
db.getDb().collection('solardata').find().sort({date: -1, hour: -1}).limit(1).toArray((err, solardataArr) => {
if (err) {
@ -55,6 +33,44 @@ router.get('/latest', (req, res) => {
})
})
router.get('/history/:hours',
check("hours").isInt({gt: 0, lt: 1000}),
(req, res) => {
db.getDb().collection('solardata').find().sort({date: -1, hour: -1}).limit(parseInt(req.params.hours)).toArray((err, solardataArr) => {
if (err) {
return res.status(500).end()
}
for (let solardata of solardataArr) {
delete solardata._id
}
return res.json(solardataArr)
})
})
router.get('/:date/:hour',
check("date").matches(/^\d\d\d\d-\d\d-\d\d$/),
check("hour").isInt({gt: -1, lt: 24}),
(req, res) => {
db.getDb().collection('solardata').findOne({date: req.params.date, hour: req.params.hour}, (err, solardata) => {
if (err) {
return res.status(500).end()
}
if (!solardata) {
return res.status(404).end()
}
delete solardata._id
delete solardata.date
delete solardata.hour
return res.json(solardata)
})
})
router.post('/:date/:hour',
check("date").matches(/^\d\d\d\d-\d\d-\d\d$/),
check("hour").isInt({gt: -1, lt: 24}),