This commit is contained in:
Timo Bejan 2021-11-22 10:18:59 +02:00
parent 243db42b0f
commit 35d688c135
4 changed files with 10 additions and 8 deletions

View File

@ -141,7 +141,7 @@ public class FileEntity {
return deleted != null; return deleted != null;
} }
public boolean isDeleted() { public boolean isSoftOrHardDeleted() {
return deleted != null || hardDeletedTime != null || ProcessingStatus.DELETED.equals(processingStatus); return deleted != null || hardDeletedTime != null || ProcessingStatus.DELETED.equals(processingStatus);
} }

View File

@ -158,7 +158,7 @@ public class FileStatusPersistenceService {
fileAttributesRepository.deleteByFileId(fileId); fileAttributesRepository.deleteByFileId(fileId);
fileRepository.findById(fileId).ifPresentOrElse((file) -> { fileRepository.findById(fileId).ifPresentOrElse((file) -> {
if (file.isDeleted()) { if (file.isSoftOrHardDeleted()) {
return; return;
} }
@ -176,7 +176,7 @@ public class FileStatusPersistenceService {
@Transactional @Transactional
public void setExcludedPages(String fileId, Set<Integer> excludedPages) { public void setExcludedPages(String fileId, Set<Integer> excludedPages) {
fileRepository.findById(fileId).ifPresentOrElse((file) -> { fileRepository.findById(fileId).ifPresentOrElse((file) -> {
if (file.isDeleted()) { if (file.isSoftOrHardDeleted()) {
return; return;
} }
@ -198,7 +198,7 @@ public class FileStatusPersistenceService {
public List<FileEntity> getActiveFiles(String dossierId) { public List<FileEntity> getActiveFiles(String dossierId) {
return fileRepository.findByDossierId(dossierId).stream().filter(f -> !f.isDeleted()).collect(Collectors.toList()); return fileRepository.findByDossierId(dossierId).stream().filter(f -> !f.isSoftOrHardDeleted()).collect(Collectors.toList());
} }
@ -218,7 +218,7 @@ public class FileStatusPersistenceService {
public void softDelete(String fileId, OffsetDateTime softDeletedTime) { public void softDelete(String fileId, OffsetDateTime softDeletedTime) {
int countUpdate = fileRepository.setSoftDelete(fileId, ProcessingStatus.DELETED, int countUpdate = fileRepository.setSoftDelete(fileId, ProcessingStatus.DELETED,
OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), softDeletedTime); OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), softDeletedTime.truncatedTo(ChronoUnit.MILLIS));
if (countUpdate == 0) { if (countUpdate == 0) {
throw new NotFoundException("Unknown file=" + fileId); throw new NotFoundException("Unknown file=" + fileId);
} }
@ -319,7 +319,7 @@ public class FileStatusPersistenceService {
private boolean isFileDeleted(String fileId) { private boolean isFileDeleted(String fileId) {
return fileRepository.findById(fileId).map(FileEntity::isDeleted).orElse(false); return fileRepository.findById(fileId).map(FileEntity::isSoftOrHardDeleted).orElse(false);
} }
public boolean hasChangesSince(String dossierId, OffsetDateTime since) { public boolean hasChangesSince(String dossierId, OffsetDateTime since) {

View File

@ -10,7 +10,6 @@ import org.springframework.data.jpa.repository.Query;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Set;
public interface FileRepository extends JpaRepository<FileEntity, String> { public interface FileRepository extends JpaRepository<FileEntity, String> {

View File

@ -28,7 +28,9 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.transaction.Transactional;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Set; import java.util.Set;
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
@ -52,6 +54,7 @@ public class UploadController implements UploadResource {
@Override @Override
@Transactional
public void deleteFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { public void deleteFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
var dossier = dossierService.getDossierById(dossierId); var dossier = dossierService.getDossierById(dossierId);
@ -59,7 +62,7 @@ public class UploadController implements UploadResource {
throw new DossierNotFoundException(String.format(DOSSIER_NOT_FOUND_MESSAGE, dossierId)); throw new DossierNotFoundException(String.format(DOSSIER_NOT_FOUND_MESSAGE, dossierId));
} }
OffsetDateTime softDeleteTime = OffsetDateTime.now(); OffsetDateTime softDeleteTime = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
fileService.softDeleteFile(dossierId, fileId, softDeleteTime); fileService.softDeleteFile(dossierId, fileId, softDeleteTime);
fileStatusService.setFileStatusDeleted(fileId, softDeleteTime); fileStatusService.setFileStatusDeleted(fileId, softDeleteTime);
} }