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
|
github.com/stretchr/testify v1.8.4
|
||||||
go.uber.org/zap v1.27.0
|
go.uber.org/zap v1.27.0
|
||||||
google.golang.org/protobuf v1.33.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
|
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-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 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-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 h1:jQ7HaXSutDX5iepU7VRImxhikK7lV/lBKkiloOZ4Emo=
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/core.git v0.0.0-20240219174804-d78fd38511af/go.mod h1:5S5YwjSXWmnEKjBjG6MtyGtFmljjukDRS8CwHk/CF/I=
|
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/server/http"
|
||||||
"amocrm/internal/service"
|
"amocrm/internal/service"
|
||||||
"amocrm/internal/workers/data_updater"
|
"amocrm/internal/workers/data_updater"
|
||||||
"amocrm/internal/workers/tokens"
|
|
||||||
"amocrm/pkg/amoClient"
|
"amocrm/pkg/amoClient"
|
||||||
"amocrm/pkg/closer"
|
"amocrm/pkg/closer"
|
||||||
pena_social_auth "amocrm/pkg/pena-social-auth"
|
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,
|
Logger: logger,
|
||||||
})
|
})
|
||||||
|
|
||||||
tokenUpdater := tokens.NewRefreshWC(tokens.Deps{
|
|
||||||
Repo: amoRepo,
|
|
||||||
AmoClient: amoClient,
|
|
||||||
Logger: logger,
|
|
||||||
})
|
|
||||||
|
|
||||||
dataUpdater := data_updater.NewDataUpdaterWC(data_updater.Deps{
|
dataUpdater := data_updater.NewDataUpdaterWC(data_updater.Deps{
|
||||||
Repo: amoRepo,
|
Repo: amoRepo,
|
||||||
AmoClient: amoClient,
|
AmoClient: amoClient,
|
||||||
Logger: logger,
|
Logger: logger,
|
||||||
})
|
})
|
||||||
|
|
||||||
go tokenUpdater.Start(ctx)
|
|
||||||
go dataUpdater.Start(ctx)
|
go dataUpdater.Start(ctx)
|
||||||
|
|
||||||
server := http.NewServer(http.ServerConfig{
|
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(server.Shutdown))
|
||||||
shutdownGroup.Add(closer.CloserFunc(amoRepo.Close))
|
shutdownGroup.Add(closer.CloserFunc(amoRepo.Close))
|
||||||
shutdownGroup.Add(closer.CloserFunc(rateLimiter.Stop))
|
shutdownGroup.Add(closer.CloserFunc(rateLimiter.Stop))
|
||||||
shutdownGroup.Add(closer.CloserFunc(tokenUpdater.Stop))
|
|
||||||
shutdownGroup.Add(closer.CloserFunc(dataUpdater.Stop))
|
shutdownGroup.Add(closer.CloserFunc(dataUpdater.Stop))
|
||||||
|
|
||||||
<-ctx.Done()
|
<-ctx.Done()
|
||||||
|
@ -57,13 +57,43 @@ func (wc *DataUpdater) processTasks(ctx context.Context) {
|
|||||||
return
|
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 {
|
if err != nil {
|
||||||
wc.logger.Error("some error from UserUpdater", zap.Error(err))
|
wc.logger.Error("some error from UserUpdater", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, token := range allTokens {
|
for _, token := range newTokens {
|
||||||
// pipelines
|
// pipelines
|
||||||
pipelines, err := wc.amoClient.GetListPipelines(token.AccessToken)
|
pipelines, err := wc.amoClient.GetListPipelines(token.AccessToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
package tokens
|
package tokens
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"amocrm/internal/models"
|
|
||||||
"amocrm/pkg/amoClient"
|
"amocrm/pkg/amoClient"
|
||||||
"context"
|
"context"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal"
|
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal"
|
||||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -46,33 +44,33 @@ func (wc *Token) Start(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (wc *Token) processTasks(ctx context.Context) {
|
func (wc *Token) processTasks(ctx context.Context) {
|
||||||
tokens, err := wc.repo.AmoRepo.CheckExpired(ctx)
|
//tokens, err := wc.repo.AmoRepo.CheckExpired(ctx)
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
wc.logger.Error("error fetch expired tokens in mongo", zap.Error(err))
|
// wc.logger.Error("error fetch expired tokens in mongo", zap.Error(err))
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
for _, token := range tokens {
|
//for _, token := range tokens {
|
||||||
req := models.UpdateWebHookReq{
|
// req := models.UpdateWebHookReq{
|
||||||
GrantType: "refresh_token",
|
// GrantType: "refresh_token",
|
||||||
RefreshToken: token.RefreshToken,
|
// RefreshToken: token.RefreshToken,
|
||||||
}
|
// }
|
||||||
newTokens, err := wc.amoClient.CreateWebHook(&req)
|
// newTokens, err := wc.amoClient.CreateWebHook(&req)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
wc.logger.Error("error create webhook for update tokens", zap.Error(err))
|
// wc.logger.Error("error create webhook for update tokens", zap.Error(err))
|
||||||
continue
|
// continue
|
||||||
}
|
// }
|
||||||
err = wc.repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
// err = wc.repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
||||||
AccountID: token.AccountID,
|
// AccountID: token.AccountID,
|
||||||
RefreshToken: newTokens.RefreshToken,
|
// RefreshToken: newTokens.RefreshToken,
|
||||||
AccessToken: newTokens.AccessToken,
|
// AccessToken: newTokens.AccessToken,
|
||||||
Expiration: time.Now().Unix() + newTokens.ExpiresIn,
|
// Expiration: time.Now().Unix() + newTokens.ExpiresIn,
|
||||||
CreatedAt: time.Now().Unix(),
|
// CreatedAt: time.Now().Unix(),
|
||||||
})
|
// })
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
wc.logger.Error("error update new tokens in mongo", zap.Error(err))
|
// wc.logger.Error("error update new tokens in mongo", zap.Error(err))
|
||||||
continue
|
// continue
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wc *Token) Stop(ctx context.Context) error {
|
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 {
|
func webhookUpdate(ctx context.Context, repo *dal.AmoDal) error {
|
||||||
|
var tokens []model.Token
|
||||||
for i := 1; i < 10; i++ {
|
for i := 1; i < 10; i++ {
|
||||||
accID := strconv.Itoa(i)
|
accID := strconv.Itoa(i)
|
||||||
err := repo.AmoRepo.WebhookUpdate(ctx, model.Token{
|
tokens = append(tokens, model.Token{
|
||||||
RefreshToken: faker.UUID(),
|
RefreshToken: faker.UUID(),
|
||||||
AccessToken: faker.UUID(),
|
AccessToken: faker.UUID(),
|
||||||
AccountID: accID,
|
AccountID: accID,
|
||||||
Expiration: time.Now().Unix() + int64(i),
|
Expiration: time.Now().Unix() + int64(i),
|
||||||
CreatedAt: time.Now().Unix(),
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user