@@ -8,6 +8,7 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.soune.nocopy.dto.*;
|
||||
import ru.soune.nocopy.dto.file.*;
|
||||
import ru.soune.nocopy.entity.file.*;
|
||||
@@ -690,7 +691,8 @@ public class FileEntityHandler implements RequestHandler {
|
||||
request.getVersion()));
|
||||
}
|
||||
|
||||
private BaseResponse handleDeleteFiles(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
@Transactional
|
||||
public BaseResponse handleDeleteFiles(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
List<String> fileIds = fileRequest.getFileIds();
|
||||
List<String> deletedIds = new ArrayList<>();
|
||||
List<String> failedIds = new ArrayList<>();
|
||||
@@ -706,7 +708,7 @@ public class FileEntityHandler implements RequestHandler {
|
||||
deleteFileIfExists(fileEntity.getMediumPath());
|
||||
|
||||
deletedIds.add(fileId);
|
||||
log.info("Files deleted for entity: {}", fileId);
|
||||
log.info("Physical files deleted for entity: {}", fileId);
|
||||
|
||||
} catch (Exception e) {
|
||||
failedIds.add(fileId);
|
||||
@@ -715,30 +717,21 @@ public class FileEntityHandler implements RequestHandler {
|
||||
}
|
||||
|
||||
if (!deletedIds.isEmpty()) {
|
||||
for (String fileId: deletedIds) {
|
||||
FileMonitoringEntity monitoring = fileMonitoringRepository.findByFileId(fileId).orElse(null);
|
||||
if (monitoring != null) {
|
||||
fileMonitoringRepository.delete(monitoring);
|
||||
}
|
||||
|
||||
List<ModerationLog> logRepositoryByFileId = moderationLogRepository.findByFileId(fileId);
|
||||
|
||||
moderationLogRepository.deleteAll(logRepositoryByFileId);
|
||||
|
||||
imageHashRepository.deleteByFileId(fileId);
|
||||
|
||||
List<FileAppeal> appeals = fileAppealRepository.findByFileId(fileId);
|
||||
|
||||
fileAppealRepository.deleteAll(appeals);
|
||||
|
||||
fileEntityRepository.deleteById(fileId);
|
||||
}
|
||||
fileMonitoringRepository.deleteAllByFileIdIn(deletedIds);
|
||||
moderationLogRepository.deleteAllByFileIdIn(deletedIds);
|
||||
imageHashRepository.deleteAllByFileIdIn(deletedIds);
|
||||
fileAppealRepository.deleteAllByFileIdIn(deletedIds);
|
||||
fileEntityRepository.deleteAllByIdIn(deletedIds);
|
||||
|
||||
log.info("Deleted {} entities from database", deletedIds.size());
|
||||
}
|
||||
|
||||
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
||||
MessageCode.SUCCESS.getDescription(), failedIds);
|
||||
return new BaseResponse(
|
||||
request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
MessageCode.SUCCESS.getDescription(),
|
||||
failedIds
|
||||
);
|
||||
}
|
||||
|
||||
private void deleteFileIfExists(String filePath) {
|
||||
|
||||
Reference in New Issue
Block a user