added amo repo methods for check account stale and update head account data

This commit is contained in:
Pavel 2024-06-18 12:12:46 +03:00
parent 42340d9ff3
commit 5b621f8a9b
2 changed files with 26 additions and 26 deletions

@ -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 (

@ -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 {