Some checks failed
CI/CD Pipeline / pipeline (push) Failing after 3m22s
Suite à la récupération précédente (044ca4b) qui n'avait restauré que les fichiers SUPPRIMÉS, ce commit restaure les MODIFICATIONS d'entités/services qui étaient nécessaires pour que les fichiers restaurés compilent. Restaurés depuis a72ab54^ (=31330d9+ corrections) : - Entities : Organisation, FormuleAbonnement, AuditService, MembreOrganisation, SouscriptionOrganisation, etc. - Services : MigrerOrganisationsVersKeycloakService, ComptabilitePdfService, KycAmlService, AuditService.logKycRisqueEleve, etc. - Resources : PaiementUnifieResource, etc. Backend compile désormais (BUILD SUCCESS).
133 lines
4.7 KiB
Java
133 lines
4.7 KiB
Java
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", "MODERATEUR"})
|
|
@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", "MODERATEUR"})
|
|
@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", "MODERATEUR"})
|
|
@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();
|
|
}
|
|
}
|