RED-6981 - save file size when uploading

This commit is contained in:
Andrei Isvoran 2023-07-13 11:16:08 +02:00 committed by Timo Bejan
parent 06c788d664
commit 95ed1c643a
5 changed files with 11 additions and 9 deletions

View File

@ -56,7 +56,7 @@ public class FileService {
private final DossierService dossierService; private final DossierService dossierService;
public JSONPrimitive<String> upload(AddFileRequest request, boolean keepManualRedactions) { public JSONPrimitive<String> upload(AddFileRequest request, boolean keepManualRedactions, long size) {
dossierPersistenceService.getAndValidateDossier(request.getDossierId()); dossierPersistenceService.getAndValidateDossier(request.getDossierId());
@ -79,7 +79,7 @@ public class FileService {
} else { } else {
// the file is new, should create a new status for it. // 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()); 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()); return new JSONPrimitive<>(request.getFileId());

View File

@ -501,9 +501,9 @@ public class FileStatusService {
@Transactional @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); addToAnalysisQueue(dossierId, fileId, false, Set.of(), false);
} }

View File

@ -72,7 +72,7 @@ public class UploadService {
try { try {
storageService.storeObject(TenantContext.getTenantId(), storageId, new ByteArrayInputStream(fileContent)); 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) { } catch (Exception e) {
storageService.deleteObject(TenantContext.getTenantId(), storageId); storageService.deleteObject(TenantContext.getTenantId(), storageId);

View File

@ -40,7 +40,7 @@ public class FileStatusPersistenceService {
private final DossierPersistenceService dossierService; 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); OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
FileEntity file = new FileEntity(); FileEntity file = new FileEntity();
@ -56,6 +56,7 @@ public class FileStatusPersistenceService {
file.setLastUpdated(now); file.setLastUpdated(now);
file.setFileManipulationDate(now); file.setFileManipulationDate(now);
file.setProcessingErrorCounter(0); file.setProcessingErrorCounter(0);
file.setFileSize(size);
fileRepository.save(file); fileRepository.save(file);
} }
@ -66,11 +67,12 @@ public class FileStatusPersistenceService {
if (isFileDeleted(fileId)) { if (isFileDeleted(fileId)) {
return; return;
} }
log.info("File " + fileId + " has been optimized with file size " + fileSize);
fileRepository.updateProcessingStatus(fileId, fileRepository.updateProcessingStatus(fileId,
ProcessingStatus.PRE_PROCESSED, ProcessingStatus.PRE_PROCESSED,
OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS),
hasHighlights, hasHighlights,
fileSize,
calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED)); calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED));
} }

View File

@ -72,8 +72,8 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
@Modifying(clearAutomatically = true) @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") @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, long fileSize, int processingErrorCounter); void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, int processingErrorCounter);
@Modifying(clearAutomatically = true) @Modifying(clearAutomatically = true)