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

This commit is contained in:
2025-07-14 16:09:34 +07:00
parent 2f33d2545a
commit a54c09ae15
2 changed files with 33 additions and 3 deletions
+30
View File
@@ -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
+3 -3
View File
@@ -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);