diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java index 47e7c759f..ddfaf4c12 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ApplicationConfigurationController.java @@ -13,7 +13,9 @@ import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverte import com.iqser.red.service.persistence.service.v1.api.external.resource.ApplicationConfigurationResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig; +import jakarta.persistence.Column; import jakarta.validation.Valid; +import lombok.Builder; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -29,7 +31,7 @@ public class ApplicationConfigurationController implements ApplicationConfigurat @PreAuthorize("hasAuthority('" + WRITE_APP_CONFIG + "')") public ApplicationConfig createOrUpdateAppConfig(@Valid @RequestBody ApplicationConfig appConfig) { - return MagicConverter.convert(applicationConfigService.saveApplicationConfiguration(MagicConverter.convert(appConfig, ApplicationConfigurationEntity.class)), + return MagicConverter.convert(applicationConfigService.saveApplicationConfiguration(convert(appConfig)), ApplicationConfig.class); } @@ -41,4 +43,18 @@ public class ApplicationConfigurationController implements ApplicationConfigurat return MagicConverter.convert(applicationConfigService.getApplicationConfig(), ApplicationConfig.class); } + + private ApplicationConfigurationEntity convert(ApplicationConfig appConfig){ + var entity = ApplicationConfigurationEntity.builder() + .downloadCleanupDownloadFilesHours(appConfig.getDownloadCleanupDownloadFilesHours()) + .downloadCleanupNotDownloadFilesHours(appConfig.getDownloadCleanupNotDownloadFilesHours()) + .softDeleteCleanupTime(appConfig.getSoftDeleteCleanupTime()) + .build(); + + if(appConfig.getHardDeleteCleanupRetryTime() != null){ + entity.setHardDeleteCleanupRetryTime(appConfig.getHardDeleteCleanupRetryTime()); + } + return entity; + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java index e2f056b31..fe9ddfee9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java @@ -24,15 +24,19 @@ public class ApplicationConfigurationEntity { private final String id = ApplicationConfigurationEntity.ID; @Column + @Builder.Default private int downloadCleanupDownloadFilesHours = 8; @Column + @Builder.Default private int downloadCleanupNotDownloadFilesHours = 72; @Column + @Builder.Default private int softDeleteCleanupTime = 96; @Column + @Builder.Default private int hardDeleteCleanupRetryTime = 72; } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/configuration/ApplicationConfig.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/configuration/ApplicationConfig.java index 904dda344..6dd396d51 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/configuration/ApplicationConfig.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/configuration/ApplicationConfig.java @@ -1,5 +1,6 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration; +import jakarta.annotation.Nullable; import jakarta.validation.constraints.Min; import lombok.AllArgsConstructor; import lombok.Builder; @@ -19,6 +20,7 @@ public class ApplicationConfig { @Min(1) private int softDeleteCleanupTime; @Min(1) - private int hardDeleteCleanupRetryTime; + @Nullable + private Integer hardDeleteCleanupRetryTime; }