diff --git a/src/main/java/ru/soune/nocopy/handler/FileEntityHandler.java b/src/main/java/ru/soune/nocopy/handler/FileEntityHandler.java index bf0ace9..e62dd4a 100644 --- a/src/main/java/ru/soune/nocopy/handler/FileEntityHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/FileEntityHandler.java @@ -12,6 +12,7 @@ import ru.soune.nocopy.repository.AuthTokenRepository; import ru.soune.nocopy.service.file.FileEntityService; import java.util.Arrays; +import java.util.List; @Slf4j @Component @@ -168,17 +169,22 @@ public class FileEntityHandler implements RequestHandler { FileResponse allFiles = fileEntityService.getUserFiles(userId, 1, 1000, request.getVersion()); var filteredFiles = allFiles.getFiles().stream() - .filter(f -> f.getOriginalFileName().toLowerCase().contains(fileRequest.getQuery().toLowerCase())) + .filter(f -> f.getOriginalFileName().toLowerCase() + .contains(fileRequest.getQuery().toLowerCase())) .toList(); int start = (page - 1) * pageSize; int end = Math.min(start + pageSize, filteredFiles.size()); + List fileEntityResponses = filteredFiles.subList(start, Math.min(end, filteredFiles.size())); + long sumSize = fileEntityResponses.stream() + .mapToLong(FileEntityResponse::getFileSize) + .sum(); FileListResponse response = FileListResponse.builder() - .files(filteredFiles.subList(start, Math.min(end, filteredFiles.size()))) + .files(fileEntityResponses) .totalCount(filteredFiles.size()) - .totalSize(allFiles.getTotalSize()) - .formattedTotalSize(allFiles.getFormattedTotalSize()) + .totalSize(sumSize) + .formattedTotalSize(fileEntityService.formatFileSize(sumSize)) .page(page) .pageSize(pageSize) .build(); @@ -187,18 +193,13 @@ public class FileEntityHandler implements RequestHandler { MessageCode.SUCCESS.getCode(), MessageCode.SUCCESS.getDescription(), response); - } catch (NotFoundAuthToken e) { - return new BaseResponse(request.getMsgId(), - MessageCode.INVALID_TOKEN.getCode(), - "Authentication required", - null); + return new BaseResponse(request.getMsgId(), MessageCode.INVALID_TOKEN.getCode(), + "Authentication required", null); } catch (Exception e) { log.error("Error searching files", e); - return new BaseResponse(request.getMsgId(), - MessageCode.FILE_UPLOAD_ERROR.getCode(), - "Failed to search files: " + e.getMessage(), - null); + return new BaseResponse(request.getMsgId(), MessageCode.FILE_UPLOAD_ERROR.getCode(), + "Failed to search files: " + e.getMessage(), null); } } diff --git a/src/main/java/ru/soune/nocopy/service/file/FileEntityService.java b/src/main/java/ru/soune/nocopy/service/file/FileEntityService.java index 97a6cab..d21c63c 100644 --- a/src/main/java/ru/soune/nocopy/service/file/FileEntityService.java +++ b/src/main/java/ru/soune/nocopy/service/file/FileEntityService.java @@ -216,7 +216,7 @@ public class FileEntityService { .build(); } - private String formatFileSize(long size) { + public String formatFileSize(long size) { if (size < 1024) { return size + " B"; } else if (size < 1024 * 1024) {