1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00

refactor: use wakatime dump api for data imports (resolve #323)

This commit is contained in:
Ferdinand Mütsch
2023-07-09 18:03:07 +02:00
parent 38286c7f3a
commit 3063e80692
10 changed files with 1637 additions and 1380 deletions

View File

@ -513,19 +513,26 @@ func (h *SettingsHandler) actionImportWakatime(w http.ResponseWriter, r *http.Re
go func(user *models.User) {
start := time.Now()
importer := imports.NewWakatimeHeartbeatImporter(user.WakatimeApiKey)
importer := imports.NewWakatimeImporter(user.WakatimeApiKey)
countBefore, err := h.heartbeatSrvc.CountByUser(user)
if err != nil {
println(err)
}
var stream <-chan *models.Heartbeat
var (
stream <-chan *models.Heartbeat
importErr error
)
if latest, err := h.heartbeatSrvc.GetLatestByOriginAndUser(imports.OriginWakatime, user); latest == nil || err != nil {
stream = importer.ImportAll(user)
stream, importErr = importer.ImportAll(user)
} else {
// if an import has happened before, only import heartbeats newer than the latest of the last import
stream = importer.Import(user, latest.Time.T(), time.Now())
stream, importErr = importer.Import(user, latest.Time.T(), time.Now())
}
if importErr != nil {
conf.Log().Error("wakatime import for user '%s' failed - %v", user.ID, importErr)
return
}
count := 0