Files
spore-ui/index.js

64 lines
1.7 KiB
JavaScript

const express = require('express');
const path = require('path');
const SporeApiClient = require('./src/client');
const app = express();
const PORT = process.env.PORT || 3001;
// Initialize the SPORE API client
const sporeClient = new SporeApiClient('http://10.0.1.60');
// Serve static files from public directory
app.use(express.static(path.join(__dirname, 'public')));
// Serve the main HTML page
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
// API endpoint to get cluster members
app.get('/api/cluster/members', async (req, res) => {
try {
const members = await sporeClient.getClusterStatus();
res.json(members);
} catch (error) {
console.error('Error fetching cluster members:', error);
res.status(500).json({
error: 'Failed to fetch cluster members',
message: error.message
});
}
});
// API endpoint to get task status
app.get('/api/tasks/status', async (req, res) => {
try {
const taskStatus = await sporeClient.getTaskStatus();
res.json(taskStatus);
} catch (error) {
console.error('Error fetching task status:', error);
res.status(500).json({
error: 'Failed to fetch task status',
message: error.message
});
}
});
// API endpoint to get system status
app.get('/api/node/status', async (req, res) => {
try {
const systemStatus = await sporeClient.getSystemStatus();
res.json(systemStatus);
} catch (error) {
console.error('Error fetching system status:', error);
res.status(500).json({
error: 'Failed to fetch system status',
message: error.message
});
}
});
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});