34 lines
712 B
Go
34 lines
712 B
Go
package stats
|
|
|
|
type Service struct {
|
|
repo *Repository
|
|
}
|
|
|
|
func NewService() *Service {
|
|
return &Service{
|
|
repo: NewRepository(),
|
|
}
|
|
}
|
|
|
|
func (s *Service) GetSummary(userID uint) (*Summary, error) {
|
|
return s.repo.GetSummary(userID)
|
|
}
|
|
|
|
func (s *Service) GetWeeklyStats(userID uint, weeks int) ([]PeriodStats, error) {
|
|
if weeks <= 0 || weeks > 52 {
|
|
weeks = 12
|
|
}
|
|
return s.repo.GetWeeklyStats(userID, weeks)
|
|
}
|
|
|
|
func (s *Service) GetMonthlyStats(userID uint, months int) ([]PeriodStats, error) {
|
|
if months <= 0 || months > 24 {
|
|
months = 12
|
|
}
|
|
return s.repo.GetMonthlyStats(userID, months)
|
|
}
|
|
|
|
func (s *Service) GetPersonalBests(userID uint) ([]PersonalBest, error) {
|
|
return s.repo.GetPersonalBests(userID)
|
|
}
|