Files
towercontrol/src/actions/backup.ts
2025-10-09 13:40:03 +02:00

65 lines
1.7 KiB
TypeScript

'use server';
import { backupService } from '@/services/data-management/backup';
import { revalidatePath } from 'next/cache';
export async function createBackupAction(force: boolean = false) {
try {
const result = await backupService.createBackup('manual', force);
// Invalider le cache de la page pour forcer le rechargement des données SSR
revalidatePath('/settings/backup');
if (result === null) {
return {
success: true,
skipped: true,
message:
'Sauvegarde sautée : aucun changement détecté. Utilisez "Forcer" pour créer malgré tout.',
};
}
return {
success: true,
data: result,
message: `Sauvegarde créée : ${result.filename}`,
};
} catch (error) {
console.error('Failed to create backup:', error);
return {
success: false,
error:
error instanceof Error
? error.message
: 'Erreur lors de la création de la sauvegarde',
};
}
}
export async function verifyDatabaseAction() {
try {
await backupService.verifyDatabaseHealth();
return {
success: true,
message: 'Intégrité vérifiée',
};
} catch (error) {
console.error('Database verification failed:', error);
return {
success: false,
error: error instanceof Error ? error.message : 'Vérification échouée',
};
}
}
export async function refreshBackupStatsAction() {
try {
// Cette action sert juste à revalider le cache
revalidatePath('/settings/backup');
return { success: true };
} catch (error) {
console.error('Failed to refresh backup stats:', error);
return { success: false };
}
}