sawa-control-panel/backend/routes/system.js

66 lines
1.5 KiB
JavaScript

const express = require('express');
const systemService = require('../services/systemInfo');
const router = express.Router();
/**
* GET /api/v1/system/cpu
*/
router.get('/cpu', async (req, res) => {
try {
const usage = await systemService.getCpuUsage();
res.json({ success: true, usage });
} catch (err) {
res.status(500).json({ success: false, error: err.message });
}
});
/**
* GET /api/v1/system/memory
*/
router.get('/memory', (req, res) => {
try {
const memory = systemService.getMemoryInfo();
res.json({ success: true, ...memory });
} catch (err) {
res.status(500).json({ success: false, error: err.message });
}
});
/**
* GET /api/v1/system/disk
*/
router.get('/disk', (req, res) => {
try {
const disk = systemService.getDiskUsage();
res.json({ success: true, partitions: disk });
} catch (err) {
res.status(500).json({ success: false, error: err.message });
}
});
/**
* GET /api/v1/system/uptime
*/
router.get('/uptime', (req, res) => {
try {
const uptime = systemService.getUptime();
res.json({ success: true, ...uptime });
} catch (err) {
res.status(500).json({ success: false, error: err.message });
}
});
/**
* GET /api/v1/system/load
*/
router.get('/load', (req, res) => {
try {
const load = systemService.getLoadAverage();
res.json({ success: true, ...load });
} catch (err) {
res.status(500).json({ success: false, error: err.message });
}
});
module.exports = router;