From 95ed1c643a6d4f788a6302cd3dfa6a93358d35ba Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Thu, 13 Jul 2023 11:16:08 +0200 Subject: [PATCH] RED-6981 - save file size when uploading --- .../management/v1/processor/service/FileService.java | 4 ++-- .../management/v1/processor/service/FileStatusService.java | 4 ++-- .../management/v1/processor/service/UploadService.java | 2 +- .../service/persistence/FileStatusPersistenceService.java | 6 ++++-- .../service/persistence/repository/FileRepository.java | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java index d25318f6c..0b448636a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java @@ -56,7 +56,7 @@ public class FileService { private final DossierService dossierService; - public JSONPrimitive upload(AddFileRequest request, boolean keepManualRedactions) { + public JSONPrimitive upload(AddFileRequest request, boolean keepManualRedactions, long size) { dossierPersistenceService.getAndValidateDossier(request.getDossierId()); @@ -79,7 +79,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(), size); } return new JSONPrimitive<>(request.getFileId()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java index edb0c25b1..b6a93ffc7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java @@ -501,9 +501,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 size) { - fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader); + fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader, size); addToAnalysisQueue(dossierId, fileId, false, Set.of(), false); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java index 7e27fb181..ad7089ad9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java @@ -72,7 +72,7 @@ public class UploadService { try { storageService.storeObject(TenantContext.getTenantId(), storageId, new ByteArrayInputStream(fileContent)); - fileService.upload(new AddFileRequest(fileName, fileId, dossierId, KeycloakSecurity.getUserId()), keepManualRedactions); + fileService.upload(new AddFileRequest(fileName, fileId, dossierId, KeycloakSecurity.getUserId()), keepManualRedactions, fileContent.length); } catch (Exception e) { storageService.deleteObject(TenantContext.getTenantId(), storageId); 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 e366f59dd..401d3fd2a 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 @@ -40,7 +40,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 size) { OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); FileEntity file = new FileEntity(); @@ -56,6 +56,7 @@ public class FileStatusPersistenceService { file.setLastUpdated(now); file.setFileManipulationDate(now); file.setProcessingErrorCounter(0); + file.setFileSize(size); fileRepository.save(file); } @@ -66,11 +67,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 e67917473..191ff3845 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 @@ -72,8 +72,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)