initial commit
This commit is contained in:
79
mock/server.mock.ts
Normal file
79
mock/server.mock.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
import { Request, Response } from 'express';
|
||||
|
||||
const genServerList = (current: number, pageSize: number) => {
|
||||
const tableListDataSource: any[] = [];
|
||||
const statusList = ['online', 'offline', 'maintenance'];
|
||||
|
||||
for (let i = 0; i < pageSize; i += 1) {
|
||||
const status = statusList[i % 3];
|
||||
tableListDataSource.push({
|
||||
key: i,
|
||||
id: `srv-${i}`,
|
||||
name: `Server-${i}`,
|
||||
ip: `192.168.1.${i}`,
|
||||
status,
|
||||
os: 'Ubuntu 22.04 LTS',
|
||||
cpu: Math.floor(Math.random() * 100),
|
||||
memory: Math.floor(Math.random() * 100),
|
||||
tags: ['web', 'production'],
|
||||
updatedAt: new Date().toISOString(),
|
||||
createdAt: new Date().toISOString(),
|
||||
});
|
||||
}
|
||||
return tableListDataSource;
|
||||
};
|
||||
|
||||
let tableListDataSource = genServerList(1, 40);
|
||||
|
||||
export default {
|
||||
'GET /api/servers': (req: Request, res: Response) => {
|
||||
const { current = 1, pageSize = 20 } = req.query as any; // Cast to any to access pagination params
|
||||
|
||||
// Simulate pagination filter
|
||||
let dataSource = [...tableListDataSource].slice(
|
||||
((current as number) - 1) * (pageSize as number),
|
||||
(current as number) * (pageSize as number),
|
||||
);
|
||||
|
||||
res.json({
|
||||
data: dataSource,
|
||||
total: tableListDataSource.length,
|
||||
success: true,
|
||||
pageSize,
|
||||
current: parseInt(`${current}`, 10) || 1,
|
||||
});
|
||||
},
|
||||
|
||||
'POST /api/servers': (req: Request, res: Response) => {
|
||||
const newData = {
|
||||
...req.body,
|
||||
updatedAt: new Date().toISOString(),
|
||||
createdAt: new Date().toISOString(),
|
||||
id: `srv-${Math.floor(Math.random() * 1000)}`,
|
||||
key: Math.floor(Math.random() * 1000),
|
||||
};
|
||||
tableListDataSource.unshift(newData);
|
||||
res.json(newData);
|
||||
},
|
||||
|
||||
'PUT /api/servers/:id': (req: Request, res: Response) => {
|
||||
const { id } = req.params;
|
||||
const index = tableListDataSource.findIndex(item => item.id === id);
|
||||
if (index !== -1) {
|
||||
tableListDataSource[index] = { ...tableListDataSource[index], ...req.body };
|
||||
res.json(tableListDataSource[index]);
|
||||
} else {
|
||||
res.status(404).json({ success: false });
|
||||
}
|
||||
},
|
||||
|
||||
'DELETE /api/servers/:id': (req: Request, res: Response) => {
|
||||
const { id } = req.params;
|
||||
tableListDataSource = tableListDataSource.filter(item => item.id !== id);
|
||||
res.json({ success: true });
|
||||
},
|
||||
|
||||
'POST /api/servers/:id/restart': (req: Request, res: Response) => {
|
||||
res.json({ success: true, status: 'restarting' });
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user