chore: Add MonitorController for printer status monitoring
This commit is contained in:
parent
213ba6f4ca
commit
99297682e3
30
src/controllers/MonitorController.ts
Normal file
30
src/controllers/MonitorController.ts
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import { Router, Request, Response } from 'express'
|
||||||
|
import { prisma } from '../prisma.js'
|
||||||
|
|
||||||
|
const router = Router()
|
||||||
|
|
||||||
|
class MonitorController {
|
||||||
|
static async status(req: Request, res: Response) {
|
||||||
|
// If last status has a toner level below 20%, send an alert
|
||||||
|
const { printerId } = req.params
|
||||||
|
|
||||||
|
const status = await prisma.printerStatus.findFirst({
|
||||||
|
where: {
|
||||||
|
printer: {
|
||||||
|
serialNumber: printerId
|
||||||
|
}
|
||||||
|
},
|
||||||
|
orderBy: { timestamp: 'desc' }
|
||||||
|
})
|
||||||
|
|
||||||
|
if (status?.tonerBlackLevel && status.tonerBlackLevel < 25) {
|
||||||
|
res.send('low toner')
|
||||||
|
} else {
|
||||||
|
res.send('ok')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
router.get('/:printerId', MonitorController.status)
|
||||||
|
|
||||||
|
export default router
|
|
@ -10,6 +10,7 @@ import PrinterRouter from './controllers/PrinterController.js'
|
||||||
import PrinterStatusRouter from './controllers/PrinterStatusController.js'
|
import PrinterStatusRouter from './controllers/PrinterStatusController.js'
|
||||||
import PrinterDiscoveryRouter from './controllers/PrinterDiscoveryController.js'
|
import PrinterDiscoveryRouter from './controllers/PrinterDiscoveryController.js'
|
||||||
import EventsRouter from './controllers/EventsController.js'
|
import EventsRouter from './controllers/EventsController.js'
|
||||||
|
import MonitorController from './controllers/MonitorController.js'
|
||||||
|
|
||||||
export const app = express()
|
export const app = express()
|
||||||
|
|
||||||
|
@ -29,6 +30,7 @@ app.use('/api/printer', PrinterRouter)
|
||||||
app.use('/api/status', PrinterStatusRouter)
|
app.use('/api/status', PrinterStatusRouter)
|
||||||
app.use('/api/discovery', PrinterDiscoveryRouter)
|
app.use('/api/discovery', PrinterDiscoveryRouter)
|
||||||
app.use('/api/events', EventsRouter)
|
app.use('/api/events', EventsRouter)
|
||||||
|
app.use('/api/monitor', MonitorController)
|
||||||
|
|
||||||
app.use('/', express.static('public'))
|
app.use('/', express.static('public'))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user