diff options
Diffstat (limited to 'shrine/services/stats.go')
| -rw-r--r-- | shrine/services/stats.go | 28 |
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 |
