const express = require('express');
const router = express.Router();
const vmService = require('../services/vmService');
/**
* GET /api/vms
* Lista todas as VMs na subscription
*/
router.get('/', async (req, res) => {
try {
const vms = await vmService.listAllVMs();
res.json({
success: true,
count: vms.length,
data: vms
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
/**
* GET /api/vms/resource-group/:resourceGroup
* Lista VMs em um resource group específico
*/
router.get('/resource-group/:resourceGroup', async (req, res) => {
try {
const { resourceGroup } = req.params;
const vms = await vmService.listVMsByResourceGroup(resourceGroup);
res.json({
success: true,
resourceGroup,
count: vms.length,
data: vms
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
/**
* GET /api/vms/:resourceGroup/:vmName
* Obtém detalhes de uma VM específica
*/
router.get('/:resourceGroup/:vmName', async (req, res) => {
try {
const { resourceGroup, vmName } = req.params;
const vm = await vmService.getVM(resourceGroup, vmName);
res.json({
success: true,
data: vm
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
/**
* GET /api/vms/:resourceGroup/:vmName/status
* Obtém status de uma VM específica
*/
router.get('/:resourceGroup/:vmName/status', async (req, res) => {
try {
const { resourceGroup, vmName } = req.params;
const status = await vmService.getVMStatus(resourceGroup, vmName);
res.json({
success: true,
data: status
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
module.exports = router;