diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 517880f..5f23d2f 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -704,7 +704,7 @@ SELECT * FROM tokens; SELECT * FROM tokens WHERE AccountID = $1 AND Expiration <= NOW(); -- name: UpdateAmoAccount :exec -UPDATE accountsAmo SET AmoID = $2, Name = $3, Subdomain = $4, Country = $5, DriveURL = $6 WHERE AccountID = $1 AND Deleted = false; +UPDATE accountsAmo SET Name = $2, Subdomain = $3, Country = $4, DriveURL = $5 WHERE AccountID = $1 AND Deleted = false; -- name: WebhookDelete :exec WITH companyDel AS ( diff --git a/repository/amo/amo.go b/repository/amo/amo.go index b67a328..e6c99e1 100644 --- a/repository/amo/amo.go +++ b/repository/amo/amo.go @@ -91,9 +91,34 @@ func (r *AmoRepository) GetCurrentAccount(ctx context.Context, accountID string) DriveURL: row.Driveurl, } + _, err = r.queries.CheckExpiredToken(ctx, accountID) + if err != nil { + if err == sql.ErrNoRows { + user.Stale = false + return &user, nil + } + return nil, err + } + + user.Stale = true + return &user, nil } +func (r *AmoRepository) UpdateCurrentAccount(ctx context.Context, user model.AmoAccount) error { + err := r.queries.UpdateAmoAccount(ctx, sqlcgen.UpdateAmoAccountParams{ + Accountid: user.AccountID, + Name: user.Name, + Subdomain: user.Subdomain, + Country: user.Country, + Driveurl: user.DriveURL, + }) + if err != nil { + return err + } + return nil +} + func (r *AmoRepository) CreateAccount(ctx context.Context, userInfo model.AmoAccount) error { err := r.queries.CreateAmoAccount(ctx, sqlcgen.CreateAmoAccountParams{ Accountid: userInfo.AccountID, @@ -225,31 +250,6 @@ func (r *AmoRepository) WebhookUpdate(ctx context.Context, token model.Token) er return nil } -// воркер запускается каждые 5 минут, поэтомму ищем токены котторые исекают менее чем через 10 минут отдаем их на обноление -func (r *AmoRepository) CheckExpired(ctx context.Context) ([]model.Token, error) { - rows, err := r.queries.CheckExpired(ctx) - if err != nil { - return nil, err - } - - var tokens []model.Token - - for _, row := range rows { - token := model.Token{ - AccountID: row.Accountid, - AccessToken: row.Accesstoken, - RefreshToken: row.Refreshtoken, - AuthCode: row.Authcode, - Expiration: row.Expiration.Unix(), - CreatedAt: row.Createdat.Time.Unix(), - } - - tokens = append(tokens, token) - } - - return tokens, nil -} - func (r *AmoRepository) GetAllTokens(ctx context.Context) ([]model.Token, error) { rows, err := r.queries.GetAllTokens(ctx) if err != nil {