feat: Implement complete server deletion endpoint in API and update FilterManager to utilize it for removing server configurations and associated files
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 6m0s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 6m0s
This commit is contained in:
@@ -648,6 +648,36 @@ app.delete('/api/server-configs/:serverId', async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Delete server completely (config + filters)
|
||||
app.delete('/api/server-configs/:serverId/complete', async (req, res) => {
|
||||
const { serverId } = req.params;
|
||||
|
||||
try {
|
||||
// Удаляем конфигурацию сервера
|
||||
const configParams = {
|
||||
Bucket: BUCKET_NAME,
|
||||
Key: `filter-manager/config-${serverId}.txt`,
|
||||
};
|
||||
|
||||
// Удаляем фильтры сервера
|
||||
const filtersParams = {
|
||||
Bucket: BUCKET_NAME,
|
||||
Key: `filter-manager/server-filters-${serverId}.json`,
|
||||
};
|
||||
|
||||
// Удаляем оба файла параллельно
|
||||
await Promise.allSettled([
|
||||
s3.deleteObject(configParams).promise(),
|
||||
s3.deleteObject(filtersParams).promise()
|
||||
]);
|
||||
|
||||
res.send('Server and all associated files deleted successfully');
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
res.status(500).send('Error deleting server files from S3');
|
||||
}
|
||||
});
|
||||
|
||||
// --- Server Filters Routes ---
|
||||
|
||||
// Get server filters
|
||||
|
||||
@@ -149,14 +149,14 @@ function FilterManager() {
|
||||
const updatedServers = servers.filter(s => s.id !== serverId);
|
||||
await axios.post(`${API_URL}/server-configs`, { servers: updatedServers });
|
||||
|
||||
// Также удаляем файл конфигурации сервера
|
||||
await axios.delete(`${API_URL}/server-configs/${serverId}`);
|
||||
// Удаляем все файлы сервера (конфигурацию и фильтры)
|
||||
await axios.delete(`${API_URL}/server-configs/${serverId}/complete`);
|
||||
|
||||
setServers(updatedServers);
|
||||
if (selectedServer?.id === serverId) {
|
||||
setSelectedServer(null);
|
||||
}
|
||||
setSuccess('Сервер успешно удален!');
|
||||
setSuccess('Сервер и все связанные файлы успешно удалены!');
|
||||
setTimeout(() => setSuccess(''), 3000);
|
||||
} catch (error) {
|
||||
console.error('Error deleting server:', error);
|
||||
|
||||
Reference in New Issue
Block a user