added amo repo methods for check account stale and update head account data
This commit is contained in:
parent
42340d9ff3
commit
5b621f8a9b
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user