update amo repo users check method
This commit is contained in:
parent
fe2fac1eac
commit
e610703cbf
@ -6,7 +6,6 @@ import (
|
||||
"encoding/json"
|
||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal/sqlcgen"
|
||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -136,32 +135,41 @@ func (r *AmoRepository) CheckMainUser(ctx context.Context, user model.User) erro
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *AmoRepository) CheckAndUpdateUsers(ctx context.Context, user model.User) error {
|
||||
err := r.queries.CheckUsers(ctx, sqlcgen.CheckUsersParams{
|
||||
Amoid: user.AmoID,
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Role: user.Role,
|
||||
Group: user.Group,
|
||||
Amouserid: user.Amouserid,
|
||||
})
|
||||
func (r *AmoRepository) CheckAndUpdateUsers(ctx context.Context, users []model.User) error {
|
||||
dollar1, err := json.Marshal(users)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rows, err := r.queries.CheckUsers(ctx, dollar1)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// чекаем на конфликт
|
||||
if err != nil && strings.Contains(err.Error(), "duplicate key value violates unique constraint") {
|
||||
err = r.queries.UpdateUsers(ctx, sqlcgen.UpdateUsersParams{
|
||||
Amoid: user.AmoID,
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Role: user.Role,
|
||||
Group: user.Group,
|
||||
Amouserid: user.Amouserid,
|
||||
})
|
||||
if rows != nil {
|
||||
var toUpdate []model.User
|
||||
for _, row := range rows {
|
||||
to := model.User{
|
||||
AmoID: row.Amoid,
|
||||
Name: row.Name,
|
||||
Group: row.Group,
|
||||
Role: row.Role,
|
||||
Email: row.Email,
|
||||
Amouserid: row.Amouserid,
|
||||
}
|
||||
toUpdate = append(toUpdate, to)
|
||||
}
|
||||
dollar1, err := json.Marshal(toUpdate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = r.queries.UpdateUsers(ctx, dollar1)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *AmoRepository) GetTokenByID(ctx context.Context, accountID string) (*model.Token, error) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user