mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
fix: properly sort durations to prevent heartbeats from being counted twice
This commit is contained in:
parent
acf16421a6
commit
148f581906
@ -16,7 +16,7 @@ func (d Durations) Swap(i, j int) {
|
|||||||
d[i], d[j] = d[j], d[i]
|
d[i], d[j] = d[j], d[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Durations) Sorted() *Durations {
|
func (d Durations) Sorted() Durations {
|
||||||
sort.Sort(d)
|
sort.Sort(d)
|
||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ func NewDurationService(heartbeatService IHeartbeatService) *DurationService {
|
|||||||
return srv
|
return srv
|
||||||
}
|
}
|
||||||
|
|
||||||
func (srv *DurationService) Get(from, to time.Time, user *models.User) ([]*models.Duration, error) {
|
func (srv *DurationService) Get(from, to time.Time, user *models.User) (models.Durations, error) {
|
||||||
heartbeats, err := srv.heartbeatService.GetAllWithin(from, to, user)
|
heartbeats, err := srv.heartbeatService.GetAllWithin(from, to, user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -62,7 +62,7 @@ func (srv *DurationService) Get(from, to time.Time, user *models.User) ([]*model
|
|||||||
count++
|
count++
|
||||||
}
|
}
|
||||||
|
|
||||||
durations := make([]*models.Duration, 0, count)
|
durations := make(models.Durations, 0, count)
|
||||||
|
|
||||||
for _, list := range mapping {
|
for _, list := range mapping {
|
||||||
for _, d := range list {
|
for _, d := range list {
|
||||||
@ -73,5 +73,5 @@ func (srv *DurationService) Get(from, to time.Time, user *models.User) ([]*model
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return durations, nil
|
return durations.Sorted(), nil
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ type IMailService interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type IDurationService interface {
|
type IDurationService interface {
|
||||||
Get(time.Time, time.Time, *models.User) ([]*models.Duration, error)
|
Get(time.Time, time.Time, *models.User) (models.Durations, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ISummaryService interface {
|
type ISummaryService interface {
|
||||||
|
@ -58,7 +58,7 @@ func NewSummaryService(summaryRepo repositories.ISummaryRepository, durationServ
|
|||||||
func (srv *SummaryService) Aliased(from, to time.Time, user *models.User, f SummaryRetriever, skipCache bool) (*models.Summary, error) {
|
func (srv *SummaryService) Aliased(from, to time.Time, user *models.User, f SummaryRetriever, skipCache bool) (*models.Summary, error) {
|
||||||
// Check cache
|
// Check cache
|
||||||
cacheKey := srv.getHash(from.String(), to.String(), user.ID, "--aliased")
|
cacheKey := srv.getHash(from.String(), to.String(), user.ID, "--aliased")
|
||||||
if cacheResult, ok := srv.cache.Get(cacheKey); ok && !skipCache {
|
if cacheResult, ok := srv.cache.Get(cacheKey); ok && !skipCache && false {
|
||||||
return cacheResult.(*models.Summary), nil
|
return cacheResult.(*models.Summary), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user