From 76103b9d9646463836495873527a6ceffd9aace9 Mon Sep 17 00:00:00 2001 From: vladp Date: Sun, 25 Jan 2026 19:59:16 +0700 Subject: [PATCH] NCBACK-25 fix check duplicate exception --- .../soune/nocopy/controller/ApiController.java | 16 ++++++++++++++-- .../service/file/impl/FileUploadServiceImpl.java | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 72e9363..6da3ebf 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -130,9 +130,21 @@ public class ApiController { return buildSuccessResponse(uploadId, chunkNumber, chunk); } catch (DuplicateImageException e) { - return ResponseEntity.ok().body(new BaseResponse(20004, MessageCode.DUPLICATE_FILE_UPLOAD.getCode(), + Map duplicateData = new HashMap<>(); + duplicateData.put("duplicateFileId", e.duplicateFileId()); + duplicateData.put("userId", e.userId()); + duplicateData.put("message", e.getMessage()); + + if (uploadId != null) { + duplicateData.put("uploadId", uploadId); + } + + return ResponseEntity.ok().body(new BaseResponse( + 20004, + MessageCode.DUPLICATE_FILE_UPLOAD.getCode(), MessageCode.DUPLICATE_FILE_UPLOAD.getDescription(), - Map.of("duplicateOwnerId", e.userId(), "duplicateFileId", e.duplicateFileId()))); + duplicateData + )); } catch (Exception e) { log.error("Error uploading chunk", e); return buildErrorResponse(uploadId, chunkNumber, "Failed to upload chunk: " + e.getMessage()); diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index bccf5ed..5bc74c5 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -382,7 +382,7 @@ public class FileUploadServiceImpl implements FileUploadService { } private void checkForDuplicatesSynchronously(String filePath) - throws IOException { + throws IOException , DuplicateImageException { Path path = Paths.get(filePath); Map hash = imageHashService.calculateHash(path); @@ -390,8 +390,8 @@ public class FileUploadServiceImpl implements FileUploadService { hash.get("hi"), hash.get("low")); if (!duplicates.isEmpty()) { - throw new DuplicateImageException("Duplicate", duplicates.get(0).getId(), - duplicates.get(0).getUserId()); + throw new DuplicateImageException("Duplicate", duplicates.getFirst().getId(), + duplicates.getFirst().getUserId()); } }