dev merge
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-04-22 18:05:02 +07:00
parent 0529af6526
commit d5f7c73306
6 changed files with 43 additions and 22 deletions
@@ -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) {