Files
DashDescomplicar/api/routes/monitor.ts
Emanuel Almeida 13608a69bf feat: WordPress Monitor API + Site Availability Checker
- Add POST /api/wp-monitor endpoint for WP plugin data
- Add GET /api/wp-monitor for listing monitored sites
- Add checkSiteAvailability() function for HTTP health checks
- Add checkAllSitesAvailability() for batch checking
- Add /api/scripts/check-sites.ts for cron execution
- Add POST /api/monitor/check-sites for manual trigger

DeskCRM Task: #1556

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 23:12:32 +00:00

42 lines
1.2 KiB
TypeScript

/**
* Monitor API Route
* GET /api/monitor - Get all monitoring data
* POST /api/monitor/check-sites - Trigger site availability check
* @author Descomplicar® | @link descomplicar.pt | @copyright 2026
*/
import { Router } from 'express'
import type { Request, Response } from 'express'
import * as monitoringService from '../services/monitoring.js'
const router = Router()
// Get monitoring data
router.get('/', async (req: Request, res: Response) => {
try {
const data = await monitoringService.getMonitoringData()
res.json(data)
} catch (error) {
console.error('Monitor API error:', error)
res.status(500).json({ error: 'Internal server error' })
}
})
// Trigger site availability check
router.post('/check-sites', async (req: Request, res: Response) => {
try {
console.log('[Monitor] Manual site check triggered')
const result = await monitoringService.checkAllSitesAvailability()
res.json({
success: true,
message: 'Site check completed',
...result,
timestamp: new Date().toISOString()
})
} catch (error) {
console.error('Site check error:', error)
res.status(500).json({ error: 'Internal server error', message: (error as Error).message })
}
})
export default router