commented token updater change to data updater
This commit is contained in:
parent
bd04264f13
commit
ddb6e946be
2
go.mod
2
go.mod
@ -10,7 +10,7 @@ require (
|
||||
github.com/stretchr/testify v1.8.4
|
||||
go.uber.org/zap v1.27.0
|
||||
google.golang.org/protobuf v1.33.0
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240420091424-34628bcc93eb
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240421100744-b7afcb01b168
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/core.git v0.0.0-20240219174804-d78fd38511af
|
||||
)
|
||||
|
||||
|
4
go.sum
4
go.sum
@ -151,5 +151,9 @@ penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240419144125-64e
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240419144125-64e45ebed8ae/go.mod h1:oRyhT55ctjqp/7ZxIzkR7OsQ7T/NLibsfrbb7Ytns64=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240420091424-34628bcc93eb h1:INNnspSaEyKlfhQ+E279sNcIzDrwvRfEFmYTuk7bdZw=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240420091424-34628bcc93eb/go.mod h1:oRyhT55ctjqp/7ZxIzkR7OsQ7T/NLibsfrbb7Ytns64=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240421091718-bd471a64c94b h1:rJWdHFxYlW+505121Tk+7NjKdG7pSG4Y7Yb+u+f9zwg=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240421091718-bd471a64c94b/go.mod h1:oRyhT55ctjqp/7ZxIzkR7OsQ7T/NLibsfrbb7Ytns64=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240421100744-b7afcb01b168 h1:eYkDBkiFgGD6ia4vr4nAlZYmpkx6hNlpRGW2MntP/Jw=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240421100744-b7afcb01b168/go.mod h1:oRyhT55ctjqp/7ZxIzkR7OsQ7T/NLibsfrbb7Ytns64=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/core.git v0.0.0-20240219174804-d78fd38511af h1:jQ7HaXSutDX5iepU7VRImxhikK7lV/lBKkiloOZ4Emo=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/core.git v0.0.0-20240219174804-d78fd38511af/go.mod h1:5S5YwjSXWmnEKjBjG6MtyGtFmljjukDRS8CwHk/CF/I=
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"amocrm/internal/server/http"
|
||||
"amocrm/internal/service"
|
||||
"amocrm/internal/workers/data_updater"
|
||||
"amocrm/internal/workers/tokens"
|
||||
"amocrm/pkg/amoClient"
|
||||
"amocrm/pkg/closer"
|
||||
pena_social_auth "amocrm/pkg/pena-social-auth"
|
||||
@ -68,19 +67,12 @@ func Run(ctx context.Context, config initialize.Config, logger *zap.Logger) erro
|
||||
Logger: logger,
|
||||
})
|
||||
|
||||
tokenUpdater := tokens.NewRefreshWC(tokens.Deps{
|
||||
Repo: amoRepo,
|
||||
AmoClient: amoClient,
|
||||
Logger: logger,
|
||||
})
|
||||
|
||||
dataUpdater := data_updater.NewDataUpdaterWC(data_updater.Deps{
|
||||
Repo: amoRepo,
|
||||
AmoClient: amoClient,
|
||||
Logger: logger,
|
||||
})
|
||||
|
||||
go tokenUpdater.Start(ctx)
|
||||
go dataUpdater.Start(ctx)
|
||||
|
||||
server := http.NewServer(http.ServerConfig{
|
||||
@ -101,7 +93,6 @@ func Run(ctx context.Context, config initialize.Config, logger *zap.Logger) erro
|
||||
shutdownGroup.Add(closer.CloserFunc(server.Shutdown))
|
||||
shutdownGroup.Add(closer.CloserFunc(amoRepo.Close))
|
||||
shutdownGroup.Add(closer.CloserFunc(rateLimiter.Stop))
|
||||
shutdownGroup.Add(closer.CloserFunc(tokenUpdater.Stop))
|
||||
shutdownGroup.Add(closer.CloserFunc(dataUpdater.Stop))
|
||||
|
||||
<-ctx.Done()
|
||||
|
@ -57,13 +57,43 @@ func (wc *DataUpdater) processTasks(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
var newTokens []model.Token
|
||||
|
||||
for _, oldToken := range allTokens {
|
||||
req := models.UpdateWebHookReq{
|
||||
GrantType: "refresh_token",
|
||||
RefreshToken: oldToken.RefreshToken,
|
||||
}
|
||||
|
||||
resp, err := wc.amoClient.CreateWebHook(&req)
|
||||
if err != nil {
|
||||
wc.logger.Error("error create webhook for update tokens", 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(),
|
||||
}
|
||||
|
||||
newTokens = append(newTokens, newToken)
|
||||
}
|
||||
|
||||
err = wc.repo.AmoRepo.WebhookUpdate(ctx, newTokens)
|
||||
if err != nil {
|
||||
wc.logger.Error("error updating users tokens", zap.Error(err))
|
||||
return
|
||||
}
|
||||
// обновляем информацию о пользователях
|
||||
err = wc.UserUpdater(ctx, allTokens)
|
||||
err = wc.UserUpdater(ctx, newTokens)
|
||||
if err != nil {
|
||||
wc.logger.Error("some error from UserUpdater", zap.Error(err))
|
||||
}
|
||||
|
||||
for _, token := range allTokens {
|
||||
for _, token := range newTokens {
|
||||
// pipelines
|
||||
pipelines, err := wc.amoClient.GetListPipelines(token.AccessToken)
|
||||
if err != nil {
|
||||
|
@ -1,12 +1,10 @@
|
||||
package tokens
|
||||
|
||||
import (
|
||||
"amocrm/internal/models"
|
||||
"amocrm/pkg/amoClient"
|
||||
"context"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal"
|
||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -46,33 +44,33 @@ func (wc *Token) Start(ctx context.Context) {
|
||||
}
|
||||
|
||||
func (wc *Token) processTasks(ctx context.Context) {
|
||||
tokens, err := wc.repo.AmoRepo.CheckExpired(ctx)
|
||||
if err != nil {
|
||||
wc.logger.Error("error fetch expired tokens in mongo", zap.Error(err))
|
||||
return
|
||||
}
|
||||
for _, token := range tokens {
|
||||
req := models.UpdateWebHookReq{
|
||||
GrantType: "refresh_token",
|
||||
RefreshToken: token.RefreshToken,
|
||||
}
|
||||
newTokens, err := wc.amoClient.CreateWebHook(&req)
|
||||
if err != nil {
|
||||
wc.logger.Error("error create webhook for update tokens", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
err = wc.repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
||||
AccountID: token.AccountID,
|
||||
RefreshToken: newTokens.RefreshToken,
|
||||
AccessToken: newTokens.AccessToken,
|
||||
Expiration: time.Now().Unix() + newTokens.ExpiresIn,
|
||||
CreatedAt: time.Now().Unix(),
|
||||
})
|
||||
if err != nil {
|
||||
wc.logger.Error("error update new tokens in mongo", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
}
|
||||
//tokens, err := wc.repo.AmoRepo.CheckExpired(ctx)
|
||||
//if err != nil {
|
||||
// wc.logger.Error("error fetch expired tokens in mongo", zap.Error(err))
|
||||
// return
|
||||
//}
|
||||
//for _, token := range tokens {
|
||||
// req := models.UpdateWebHookReq{
|
||||
// GrantType: "refresh_token",
|
||||
// RefreshToken: token.RefreshToken,
|
||||
// }
|
||||
// newTokens, err := wc.amoClient.CreateWebHook(&req)
|
||||
// if err != nil {
|
||||
// wc.logger.Error("error create webhook for update tokens", zap.Error(err))
|
||||
// continue
|
||||
// }
|
||||
// err = wc.repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
||||
// AccountID: token.AccountID,
|
||||
// RefreshToken: newTokens.RefreshToken,
|
||||
// AccessToken: newTokens.AccessToken,
|
||||
// Expiration: time.Now().Unix() + newTokens.ExpiresIn,
|
||||
// CreatedAt: time.Now().Unix(),
|
||||
// })
|
||||
// if err != nil {
|
||||
// wc.logger.Error("error update new tokens in mongo", zap.Error(err))
|
||||
// continue
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
func (wc *Token) Stop(ctx context.Context) error {
|
||||
|
@ -511,18 +511,22 @@ func webhookCreate(ctx context.Context, repo *dal.AmoDal) error {
|
||||
}
|
||||
|
||||
func webhookUpdate(ctx context.Context, repo *dal.AmoDal) error {
|
||||
var tokens []model.Token
|
||||
for i := 1; i < 10; i++ {
|
||||
accID := strconv.Itoa(i)
|
||||
err := repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
||||
tokens = append(tokens, model.Token{
|
||||
RefreshToken: faker.UUID(),
|
||||
AccessToken: faker.UUID(),
|
||||
AccountID: accID,
|
||||
Expiration: time.Now().Unix() + int64(i),
|
||||
CreatedAt: time.Now().Unix(),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
err := repo.AmoRepo.WebhookUpdate(ctx, tokens)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user