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 PrinterDiscoveryRouter from './controllers/PrinterDiscoveryController.js'
|
||||
import EventsRouter from './controllers/EventsController.js'
|
||||
import MonitorController from './controllers/MonitorController.js'
|
||||
|
||||
export const app = express()
|
||||
|
||||
|
@ -29,6 +30,7 @@ app.use('/api/printer', PrinterRouter)
|
|||
app.use('/api/status', PrinterStatusRouter)
|
||||
app.use('/api/discovery', PrinterDiscoveryRouter)
|
||||
app.use('/api/events', EventsRouter)
|
||||
app.use('/api/monitor', MonitorController)
|
||||
|
||||
app.use('/', express.static('public'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user