-
This commit is contained in:
parent
54b558636c
commit
bd307dcddf
@ -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
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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user