From 829132199ec2bac8eac62dc9bc87c071f026ef91 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Thu, 5 Oct 2023 16:28:46 +0200 Subject: [PATCH] RED-7326 - Backport fileSize fix --- .../model/dossiertemplate/dossier/file/AddFileRequest.java | 1 + .../service/persistence/FileStatusPersistenceService.java | 6 ++++-- .../service/persistence/repository/FileRepository.java | 4 ++-- .../service/peristence/v1/server/service/FileService.java | 2 +- .../peristence/v1/server/service/FileStatusService.java | 4 ++-- .../server/integration/service/FileTesterAndProvider.java | 2 +- .../peristence/v1/server/integration/tests/FileTest.java | 4 ++-- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java index 226d9e530..6b474cc1a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java @@ -20,5 +20,6 @@ public class AddFileRequest { @NonNull private String dossierId; private String uploader; + private long fileSize; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index d7074cbcd..12c44719f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -39,7 +39,7 @@ public class FileStatusPersistenceService { private final DossierPersistenceService dossierService; - public void createStatus(String dossierId, String fileId, String filename, String uploader) { + public void createStatus(String dossierId, String fileId, String filename, String uploader, long fileSize) { OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); FileEntity file = new FileEntity(); @@ -55,6 +55,7 @@ public class FileStatusPersistenceService { file.setLastUpdated(now); file.setFileManipulationDate(now); file.setProcessingErrorCounter(0); + file.setFileSize(fileSize); fileRepository.save(file); } @@ -65,11 +66,12 @@ public class FileStatusPersistenceService { if (isFileDeleted(fileId)) { return; } + + log.info("File " + fileId + " has been optimized with file size " + fileSize); fileRepository.updateProcessingStatus(fileId, ProcessingStatus.PRE_PROCESSED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), hasHighlights, - fileSize, calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED)); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java index 1d66ca871..d35fc1a4c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java @@ -73,8 +73,8 @@ public interface FileRepository extends JpaRepository { @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hasHighlights = :hasHighlights, f.fileSize = :fileSize, f.processingErrorCounter = :processingErrorCounter " + " where f.id = :fileId") - void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, long fileSize, int processingErrorCounter); + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hasHighlights = :hasHighlights, f.processingErrorCounter = :processingErrorCounter " + " where f.id = :fileId") + void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, int processingErrorCounter); @Modifying(clearAutomatically = true) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java index 84c439a33..6565f97b9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java @@ -71,7 +71,7 @@ public class FileService { } else { // the file is new, should create a new status for it. log.info("File {} has no status yet, creating one and setting to unprocessed.", request.getFilename()); - fileStatusService.createStatus(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename()); + fileStatusService.createStatus(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename(), request.getFileSize()); } return new JSONPrimitive<>(request.getFileId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index 34a13cefa..76832d5f1 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -278,9 +278,9 @@ public class FileStatusService { @Transactional - public void createStatus(String dossierId, String fileId, String uploader, String filename) { + public void createStatus(String dossierId, String fileId, String uploader, String filename, long fileSize) { - fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader); + fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader, fileSize); addToAnalysisQueue(dossierId, fileId, false, Set.of(), false); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index 25e8289cc..8986ffc11 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -74,7 +74,7 @@ public class FileTesterAndProvider { var fileId = Base64.encodeBase64String((dossier.getId() + fileName).getBytes(StandardCharsets.UTF_8)); - AddFileRequest upload = new AddFileRequest(fileName, fileId, dossier.getId(), "1"); + AddFileRequest upload = new AddFileRequest(fileName, fileId, dossier.getId(), "1", 1); fileManagementStorageService.storeObject(dossier.getId(), fileId, FileType.UNTOUCHED, new ByteArrayInputStream("test".getBytes(StandardCharsets.UTF_8))); JSONPrimitive uploadResult = uploadClient.upload(upload, false); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java index f7208e4ae..c77d3ee81 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java @@ -136,7 +136,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(viewedPages.size()).isEqualTo(1); - AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1"); + AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1", 1); JSONPrimitive uploadResult = uploadClient.upload(upload, false); loadedFile = fileClient.getFileStatus(dossier.getId(), uploadResult.getValue()); @@ -174,7 +174,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(viewedPages).hasSize(1); - AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1"); + AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1", 1); JSONPrimitive uploadResult = uploadClient.upload(upload, true); loadedFile = fileClient.getFileStatus(dossier.getId(), uploadResult.getValue());