diff --git a/src/main/java/auth_service/modules/stats/api/PublicStatsController.java b/src/main/java/auth_service/modules/stats/api/PublicStatsController.java index 069d1ee..d7db92f 100644 --- a/src/main/java/auth_service/modules/stats/api/PublicStatsController.java +++ b/src/main/java/auth_service/modules/stats/api/PublicStatsController.java @@ -1,6 +1,7 @@ package auth_service.modules.stats.api; import auth_service.modules.stats.api.dto.PublicStatsDto; +import auth_service.modules.stats.api.mapper.ApiMapper; import auth_service.modules.stats.service.PublicStatsService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -17,6 +18,6 @@ public class PublicStatsController { @GetMapping("/public") public ResponseEntity getPublicStats() { - return ResponseEntity.ok(publicStatsService.getPublicStats()); + return ResponseEntity.ok(ApiMapper.toApi(publicStatsService.getPublicStats())); } } diff --git a/src/main/java/auth_service/modules/stats/api/mapper/ApiMapper.java b/src/main/java/auth_service/modules/stats/api/mapper/ApiMapper.java new file mode 100644 index 0000000..62429f3 --- /dev/null +++ b/src/main/java/auth_service/modules/stats/api/mapper/ApiMapper.java @@ -0,0 +1,13 @@ +package auth_service.modules.stats.api.mapper; + +import auth_service.modules.stats.api.dto.PublicStatsDto; +import auth_service.modules.stats.model.PublicStats; + +public abstract class ApiMapper { + private ApiMapper() { + } + + public static PublicStatsDto toApi(PublicStats stats) { + return new PublicStatsDto(stats.totalUsers(), stats.usersWithSteamLinked()); + } +} diff --git a/src/main/java/auth_service/modules/stats/model/PublicStats.java b/src/main/java/auth_service/modules/stats/model/PublicStats.java new file mode 100644 index 0000000..218ec56 --- /dev/null +++ b/src/main/java/auth_service/modules/stats/model/PublicStats.java @@ -0,0 +1,6 @@ +package auth_service.modules.stats.model; + +public record PublicStats( + long totalUsers, + long usersWithSteamLinked +) {} diff --git a/src/main/java/auth_service/modules/stats/service/PublicStatsService.java b/src/main/java/auth_service/modules/stats/service/PublicStatsService.java index 47bb98b..bfba981 100644 --- a/src/main/java/auth_service/modules/stats/service/PublicStatsService.java +++ b/src/main/java/auth_service/modules/stats/service/PublicStatsService.java @@ -1,6 +1,6 @@ package auth_service.modules.stats.service; -import auth_service.modules.stats.api.dto.PublicStatsDto; +import auth_service.modules.stats.model.PublicStats; import auth_service.modules.stats.repo.StatsRepository; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.Cacheable; @@ -13,8 +13,8 @@ public class PublicStatsService { private final StatsRepository statsRepository; @Cacheable(value = "publicStats", key = "'global'") - public PublicStatsDto getPublicStats() { - return new PublicStatsDto( + public PublicStats getPublicStats() { + return new PublicStats( statsRepository.countTotalUsers(), statsRepository.countUsersWithSteamLinked() );