From 2577a74d6ab26189c22317c00ccce5c546851e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Mon, 16 Oct 2023 12:43:37 +0200 Subject: [PATCH] RED-7767: Added migration for missing filesizes --- .../MissingFileSizeMigration13.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MissingFileSizeMigration13.java diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MissingFileSizeMigration13.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MissingFileSizeMigration13.java new file mode 100644 index 000000000..b97612199 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MissingFileSizeMigration13.java @@ -0,0 +1,64 @@ +package com.iqser.red.service.peristence.v1.server.migration.migrations; + +import com.iqser.red.service.peristence.v1.server.migration.Migration; +import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Setter +@Service +public class MissingFileSizeMigration13 extends Migration { + + private static final String NAME = "Add missing file sizes"; + private static final long VERSION = 13; + + @Autowired + private FileStatusPersistenceService fileStatusPersistenceService; + + @Autowired + private FileManagementStorageService fileManagementStorageService; + + + public MissingFileSizeMigration13() { + + super(NAME, VERSION); + } + + + @Override + protected void migrate() { + + List missingFileSizeFiles = fileStatusPersistenceService.getAllFiles().stream().filter(file -> file.getFileSize() == null).toList(); + + log.info("Number of files without fileSize: {}", missingFileSizeFiles.size()); + + missingFileSizeFiles.forEach(file -> { + // not hard deleted + if (file.getHardDeletedTime() == null) { + try { + var originFile = fileManagementStorageService.getStoredObjectBytes(file.getDossierId(), file.getId(), FileType.ORIGIN); + fileStatusPersistenceService.updateFileSize(file.getId(), originFile.length); + } catch (Exception e) { + log.warn("Failed to load file bytes for file: {} in dossier {}. Error message: {}, setting filesize to 0", file.getId(), file.getDossierId(), e.getMessage()); + fileStatusPersistenceService.updateFileSize(file.getId(), 0); + } + } else { + fileStatusPersistenceService.updateFileSize(file.getId(), 0); + } + }); + } + +} + + + + + -- 2.47.2