Sync: code local unifié

Synchronisation du code source local (fait foi).

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 16:25:40 +00:00
parent e82dc356f3
commit 75a19988b0
730 changed files with 53599 additions and 13145 deletions

View File

@@ -0,0 +1,132 @@
package dev.lions.unionflow.server.resource;
import dev.lions.unionflow.server.api.dto.backup.request.CreateBackupRequest;
import dev.lions.unionflow.server.api.dto.backup.request.RestoreBackupRequest;
import dev.lions.unionflow.server.api.dto.backup.request.UpdateBackupConfigRequest;
import dev.lions.unionflow.server.api.dto.backup.response.BackupConfigResponse;
import dev.lions.unionflow.server.api.dto.backup.response.BackupResponse;
import dev.lions.unionflow.server.service.BackupService;
import jakarta.annotation.security.RolesAllowed;
import jakarta.inject.Inject;
import jakarta.validation.Valid;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
import java.util.List;
import java.util.UUID;
/**
* REST Resource pour la gestion des sauvegardes système
*/
@Slf4j
@Path("/api/backups")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Tag(name = "Sauvegardes", description = "Gestion des sauvegardes et restaurations")
public class BackupResource {
@Inject
BackupService backupService;
/**
* Lister toutes les sauvegardes
*/
@GET
@RolesAllowed({"SUPER_ADMIN", "ADMIN", "MODERATOR"})
@Operation(summary = "Lister toutes les sauvegardes disponibles")
public List<BackupResponse> getAllBackups() {
log.info("GET /api/backups");
return backupService.getAllBackups();
}
/**
* Récupérer une sauvegarde par ID
*/
@GET
@Path("/{id}")
@RolesAllowed({"SUPER_ADMIN", "ADMIN", "MODERATOR"})
@Operation(summary = "Récupérer une sauvegarde par ID")
public BackupResponse getBackupById(@PathParam("id") UUID id) {
log.info("GET /api/backups/{}", id);
return backupService.getBackupById(id);
}
/**
* Créer une nouvelle sauvegarde
*/
@POST
@RolesAllowed({"SUPER_ADMIN", "ADMIN"})
@Operation(summary = "Créer une nouvelle sauvegarde")
public Response createBackup(@Valid CreateBackupRequest request) {
log.info("POST /api/backups - {}", request.getName());
BackupResponse backup = backupService.createBackup(request);
return Response.status(Response.Status.CREATED).entity(backup).build();
}
/**
* Restaurer une sauvegarde
*/
@POST
@Path("/restore")
@RolesAllowed({"SUPER_ADMIN", "ADMIN"})
@Operation(summary = "Restaurer une sauvegarde")
public Response restoreBackup(@Valid RestoreBackupRequest request) {
log.info("POST /api/backups/restore - backupId={}", request.getBackupId());
backupService.restoreBackup(request);
return Response.ok().entity(java.util.Map.of("message", "Restauration en cours")).build();
}
/**
* Supprimer une sauvegarde
*/
@DELETE
@Path("/{id}")
@RolesAllowed({"SUPER_ADMIN", "ADMIN"})
@Operation(summary = "Supprimer une sauvegarde")
public Response deleteBackup(@PathParam("id") UUID id) {
log.info("DELETE /api/backups/{}", id);
backupService.deleteBackup(id);
return Response.ok().entity(java.util.Map.of("message", "Sauvegarde supprimée avec succès")).build();
}
/**
* Récupérer la configuration des sauvegardes automatiques
*/
@GET
@Path("/config")
@RolesAllowed({"SUPER_ADMIN", "ADMIN", "MODERATOR"})
@Operation(summary = "Récupérer la configuration des sauvegardes automatiques")
public BackupConfigResponse getBackupConfig() {
log.info("GET /api/backups/config");
return backupService.getBackupConfig();
}
/**
* Mettre à jour la configuration des sauvegardes automatiques
*/
@PUT
@Path("/config")
@RolesAllowed({"SUPER_ADMIN", "ADMIN"})
@Operation(summary = "Mettre à jour la configuration des sauvegardes automatiques")
public BackupConfigResponse updateBackupConfig(@Valid UpdateBackupConfigRequest request) {
log.info("PUT /api/backups/config");
return backupService.updateBackupConfig(request);
}
/**
* Créer un point de restauration
*/
@POST
@Path("/restore-point")
@RolesAllowed({"SUPER_ADMIN", "ADMIN"})
@Operation(summary = "Créer un point de restauration")
public Response createRestorePoint() {
log.info("POST /api/backups/restore-point");
BackupResponse backup = backupService.createRestorePoint();
return Response.status(Response.Status.CREATED).entity(backup).build();
}
}