Files
OLD-server-architecture/realtime/src/routes/sensors.js

60 lines
2.2 KiB
JavaScript

const router = require('express').Router();
const db = require('../store/db');
router.get('/', async (req, res) => {
try {
const result = await db.query('sensors', 'SELECT id, name FROM sensors');
res.json(result.rows);
} catch (err) {
console.error('Error fetching sensors', err);
res.status(500).json({ error: `internal server error, ${err}` });
}
});
router.get('/:id', async (req, res) => {
const { id } = req.params;
try {
const result = await db.query('sensors', 'SELECT id, name FROM sensors WHERE id = $1', [id]);
if (result.rows.length === 0) {
return res.status(404).json({ error: 'sensor not found' });
}
res.json(result.rows[0]);
} catch (err) {
console.error('Error fetching sensor', err);
res.status(500).json({ error: `internal server error, ${err}` });
}
});
//Toggle availability
router.post('/:id/inactive', async (req, res) => {
const { id } = req.params;
try {
const result = await db.query('sensors', 'SELECT id, name FROM sensors WHERE id = $1', [id]);
if (result.rows.length === 0) {
return res.status(404).json({ error: 'sensor not found' });
}
await db.query('sensors', 'UPDATE sensors SET active = false WHERE id = $1', [id]);
res.json({ status: 'ok' });
} catch (err) {
console.error('Error updating sensor status', err);
res.status(500).json({ error: `internal server error, ${err}` });
}
});
router.post('/:id/active', async (req, res) => {
const { id } = req.params;
try {
const result = await db.query('sensors', 'SELECT id, name FROM sensors WHERE id = $1', [id]);
if (result.rows.length === 0) {
return res.status(404).json({ error: 'sensor not found' });
}
await db.query('sensors', 'UPDATE sensors SET active = true WHERE id = $1', [id]);
res.json({ status: 'ok' });
} catch (err) {
console.error('Error updating sensor status', err);
res.status(500).json({ error: `internal server error, ${err}` });
}
});
module.exports = router;