Merge branch 'RED-6981' into 'master'

RED-6981 - save file size when uploading

Closes RED-6981

See merge request redactmanager/persistence-service!50
This commit is contained in:
Timo Bejan 2023-07-13 11:16:08 +02:00
commit 864b3e8af8
5 changed files with 11 additions and 9 deletions

View File

@ -56,7 +56,7 @@ public class FileService {
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());
@ -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());

View File

@ -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);
}

View File

@ -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);

View File

@ -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));
}

View File

@ -72,8 +72,8 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
@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)