From 130fd184b9045be41b02ac0aced599d2f683a5be Mon Sep 17 00:00:00 2001 From: vladp Date: Thu, 5 Feb 2026 19:02:17 +0700 Subject: [PATCH] dev add stats api --- .../soune/nocopy/controller/ApiController.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index de82083..271582b 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -25,8 +25,10 @@ import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.FileStatus; import ru.soune.nocopy.entity.file.ProtectionStatus; import ru.soune.nocopy.entity.file.UploadStatus; +import ru.soune.nocopy.entity.user.AuthToken; import ru.soune.nocopy.exception.*; import ru.soune.nocopy.handler.*; +import ru.soune.nocopy.repository.AuthTokenRepository; import ru.soune.nocopy.repository.FileEntityRepository; import ru.soune.nocopy.service.FileSimilarityService; import ru.soune.nocopy.service.file.ProtectionsLimitService; @@ -69,6 +71,8 @@ public class ApiController { private final ProtectionsLimitService protectionsLimitService; + private final AuthTokenRepository authTokenRepository; + @PostMapping("/v{version}/data") public ResponseEntity handlePostRequest(@RequestBody BaseRequest request, @PathVariable("version") int version) { @@ -422,9 +426,15 @@ public class ApiController { return ResponseEntity.ok().body(noCopyCheckResult); } - @GetMapping("/check/file_stats/{userId}") - public ResponseEntity checkFileProtectStats(@PathVariable(required = false) Long userId) { - Map fileTypeStats = protectionsLimitService.getFileTypeStats(userId); + @GetMapping("/check/file_stats") + public ResponseEntity checkFileProtectStats(@RequestHeader("Authorization") String tokenHeader) { + String token = tokenHeader.replace("Bearer ", ""); + + Optional tokenOptional = authTokenRepository.findByToken(token); + + AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found")); + + Map fileTypeStats = protectionsLimitService.getFileTypeStats(authToken.getUser().getId()); return ResponseEntity.ok().body(fileTypeStats); }