-
This commit is contained in:
parent
54b558636c
commit
bd307dcddf
@ -3,6 +3,7 @@ package data_updater
|
|||||||
import (
|
import (
|
||||||
"amocrm/internal/brokers"
|
"amocrm/internal/brokers"
|
||||||
"amocrm/internal/models"
|
"amocrm/internal/models"
|
||||||
|
"amocrm/pkg/timer"
|
||||||
"context"
|
"context"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"time"
|
"time"
|
||||||
@ -27,7 +28,7 @@ func NewDataUpdaterWC(deps Deps) *DataUpdater {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (wc *DataUpdater) Start(ctx context.Context) {
|
func (wc *DataUpdater) Start(ctx context.Context) {
|
||||||
nextStart := calculateTime()
|
nextStart := timer.CalculateTime(4)
|
||||||
ticker := time.NewTicker(time.Nanosecond * time.Duration(nextStart))
|
ticker := time.NewTicker(time.Nanosecond * time.Duration(nextStart))
|
||||||
//ticker := time.NewTicker(10 * time.Second)
|
//ticker := time.NewTicker(10 * time.Second)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
@ -42,7 +43,6 @@ func (wc *DataUpdater) Start(ctx context.Context) {
|
|||||||
select {
|
select {
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
wc.processTasks(ctx)
|
wc.processTasks(ctx)
|
||||||
nextStart = calculateTime()
|
|
||||||
ticker.Reset(time.Nanosecond * time.Duration(nextStart))
|
ticker.Reset(time.Nanosecond * time.Duration(nextStart))
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
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))
|
m.logger.Error("error getting all tokens from db in UpdateTokens", zap.Error(err))
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
return allTokens, nil
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error {
|
func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package data_updater
|
package timer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"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