summaryrefslogtreecommitdiff
path: root/shrine/services/stats.go
diff options
context:
space:
mode:
Diffstat (limited to 'shrine/services/stats.go')
-rw-r--r--shrine/services/stats.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/shrine/services/stats.go b/shrine/services/stats.go
new file mode 100644
index 0000000..1d6eb64
--- /dev/null
+++ b/shrine/services/stats.go
@@ -0,0 +1,28 @@
+package services
+
+import (
+ "shrine/repositories"
+ "shrine/types/user"
+)
+
+func GetStats() user.StatsResponse {
+ newest := repositories.NewestCitizens(5)
+ online := repositories.OnlineCitizens(10)
+
+ newestSummaries := make([]user.CitizenSummaryResponse, len(newest))
+ for index, citizen := range newest {
+ newestSummaries[index] = citizen.ToSummary()
+ }
+
+ onlineSummaries := make([]user.CitizenSummaryResponse, len(online))
+ for index, citizen := range online {
+ onlineSummaries[index] = citizen.ToSummary()
+ }
+
+ return user.StatsResponse{
+ Citizens: repositories.CountCitizens(),
+ Online: repositories.CountOnline(),
+ NewestCitizens: newestSummaries,
+ OnlineCitizens: onlineSummaries,
+ }
+} \ No newline at end of file