60 lines
2.2 KiB
JavaScript
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; |