This commit is contained in:
skeris 2024-12-03 16:22:05 +03:00
parent 54b558636c
commit bd307dcddf
4 changed files with 18 additions and 43 deletions

@ -3,6 +3,7 @@ package data_updater
import (
"amocrm/internal/brokers"
"amocrm/internal/models"
"amocrm/pkg/timer"
"context"
"go.uber.org/zap"
"time"
@ -27,7 +28,7 @@ func NewDataUpdaterWC(deps Deps) *DataUpdater {
}
func (wc *DataUpdater) Start(ctx context.Context) {
nextStart := calculateTime()
nextStart := timer.CalculateTime(4)
ticker := time.NewTicker(time.Nanosecond * time.Duration(nextStart))
//ticker := time.NewTicker(10 * time.Second)
defer ticker.Stop()
@ -42,7 +43,6 @@ func (wc *DataUpdater) Start(ctx context.Context) {
select {
case <-ticker.C:
wc.processTasks(ctx)
nextStart = calculateTime()
ticker.Reset(time.Nanosecond * time.Duration(nextStart))
case <-ctx.Done():
return

@ -41,46 +41,7 @@ func (m *Methods) UpdateTokens(ctx context.Context) ([]model.Token, error) {
m.logger.Error("error getting all tokens from db in UpdateTokens", zap.Error(err))
return nil, err
}
for _, oldToken := range allTokens {
user, err := m.repo.AmoRepo.GetCurrentAccount(ctx, oldToken.AccountID)
if err != nil {
m.logger.Error("error getting account by id in UpdateTokens", zap.Error(err))
continue
}
req := models.UpdateWebHookReq{
GrantType: "refresh_token",
RefreshToken: oldToken.RefreshToken,
}
resp, err := m.amoClient.CreateWebHook(&req, user.Subdomain)
if err != nil {
m.logger.Error("error create webhook in UpdateTokens", zap.Error(err))
continue
}
newToken := model.Token{
AccountID: oldToken.AccountID,
RefreshToken: resp.RefreshToken,
AccessToken: resp.AccessToken,
Expiration: time.Now().Unix() + resp.ExpiresIn,
CreatedAt: time.Now().Unix(),
}
err = m.repo.AmoRepo.WebhookUpdate(ctx, newToken)
if err != nil {
m.logger.Error("error update token in db", zap.Error(err))
return nil, err
}
}
newTokens, err := m.repo.AmoRepo.GetAllTokens(ctx)
if err != nil {
m.logger.Error("error getting all new updated tokens from db in UpdateTokens", zap.Error(err))
return nil, err
}
return newTokens, nil
return allTokens, nil
}
func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error {

@ -1,4 +1,4 @@
package data_updater
package timer
import (
"time"

14
pkg/timer/timer_test.go Normal file

@ -0,0 +1,14 @@
package timer
import (
"fmt"
"testing"
)
func TestTimer(t *testing.T) {
result := CalculateTime(4)
fmt.Println(result)
result = CalculateTime(3)
fmt.Println(result)
}