save for test after separate table users
This commit is contained in:
parent
4a752c8f12
commit
3f033e3a5f
2
go.mod
2
go.mod
@ -13,7 +13,7 @@ require (
|
||||
github.com/twmb/franz-go v1.16.1
|
||||
go.uber.org/zap v1.27.0
|
||||
google.golang.org/protobuf v1.33.0
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608175833-b161daea2841
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240612140327-7764e7618cca
|
||||
)
|
||||
|
||||
require (
|
||||
|
6
go.sum
6
go.sum
@ -134,5 +134,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240223054633-6cb3d5ce45b6 h1:oV+/HNX+JPoQ3/GUx08hio7d45WpY0AMGrFs7j70QlA=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240223054633-6cb3d5ce45b6/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608175833-b161daea2841 h1:3T79OtrS85P8FnCnL/upxhugNL89TOXyw3kOcnXjMFw=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240608175833-b161daea2841/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240612135015-429052cf2e7d h1:M5Uzn8cUtz3ZX+4C2+XdVW49n3cDsrO/SlYy/LePQ38=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240612135015-429052cf2e7d/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240612140327-7764e7618cca h1:nEZNHR0VjV6WyEhVY8nlu2JtWRw2NdLZpAivivS3mbg=
|
||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240612140327-7764e7618cca/go.mod h1:n66zm88Dh12+idyfqh0vU5nd9BZYxM6Pv0XYnmy0398=
|
||||
|
@ -42,7 +42,7 @@ func (s *Service) SoftDeleteAccount(ctx context.Context, accountID string) error
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Service) GetCurrentAccount(ctx context.Context, accountID string) (*model.User, error) {
|
||||
func (s *Service) GetCurrentAccount(ctx context.Context, accountID string) (*model.AmoAccount, error) {
|
||||
user, err := s.repository.AmoRepo.GetCurrentAccount(ctx, accountID)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
@ -104,7 +104,6 @@ func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error
|
||||
listUser[token.AccountID] = append(listUser[token.AccountID], userData.Embedded.Users...)
|
||||
}
|
||||
|
||||
var usersForUpdateAndCreate []model.User
|
||||
for accountID, users := range listUser {
|
||||
mainAccount, err := m.repo.AmoRepo.GetCurrentAccount(ctx, accountID)
|
||||
if err != nil {
|
||||
@ -112,30 +111,49 @@ func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error
|
||||
return err
|
||||
}
|
||||
|
||||
currentUserUsers, err := m.repo.AmoRepo.GetUserUsersByID(ctx, mainAccount.Amouserid)
|
||||
currentUserUsers, err := m.repo.AmoRepo.GetUserUsersByID(ctx, mainAccount.AmoID)
|
||||
if err != nil {
|
||||
m.logger.Error("error getting user users by amo user id", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
for _, user := range users {
|
||||
usersForUpdateAndCreate = append(usersForUpdateAndCreate, model.User{
|
||||
AmoID: user.ID,
|
||||
Name: user.FullName,
|
||||
Group: int32(user.Rights.GroupID),
|
||||
Role: int32(user.Rights.RoleID),
|
||||
Email: user.Email,
|
||||
Amouserid: mainAccount.Amouserid,
|
||||
})
|
||||
found := false
|
||||
for _, currentUser := range currentUserUsers {
|
||||
found = true
|
||||
if user.ID == currentUser.AmoUserID {
|
||||
err := m.repo.AmoRepo.UpdateAmoAccountUser(ctx, model.AmoAccountUser{
|
||||
AmoID: currentUser.AmoID,
|
||||
AmoUserID: currentUser.AmoUserID,
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Role: int32(user.Rights.RoleID),
|
||||
Group: int32(user.Rights.GroupID),
|
||||
})
|
||||
if err != nil {
|
||||
m.logger.Error("failed update user amo account in db", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
err := m.repo.AmoRepo.AddAmoAccountUser(ctx, model.AmoAccountUser{
|
||||
AmoID: mainAccount.AmoID,
|
||||
AmoUserID: user.ID,
|
||||
Name: user.Name,
|
||||
Email: user.Email,
|
||||
Role: int32(user.Rights.RoleID),
|
||||
Group: int32(user.Rights.GroupID),
|
||||
})
|
||||
if err != nil {
|
||||
m.logger.Error("failed insert user amo account in db", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var deletedUserIDs []int64
|
||||
for _, currentUserUser := range currentUserUsers {
|
||||
// todo костыль нужно главный аккаунт выносить в отдельную таблицу - например companyAmo
|
||||
if currentUserUser.AmoID == mainAccount.AmoID {
|
||||
continue
|
||||
}
|
||||
|
||||
found := false
|
||||
for _, user := range users {
|
||||
if currentUserUser.AmoID == user.ID {
|
||||
@ -158,12 +176,6 @@ func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error
|
||||
}
|
||||
}
|
||||
|
||||
err := m.repo.AmoRepo.CheckAndUpdateUsers(ctx, usersForUpdateAndCreate)
|
||||
if err != nil {
|
||||
m.logger.Error("error update users list data in db", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -517,16 +529,16 @@ func (m *Methods) CreateUserFromWebHook(ctx context.Context, msg models.KafkaMes
|
||||
return nil, err
|
||||
}
|
||||
|
||||
toCreate := model.User{
|
||||
toCreate := model.AmoAccount{
|
||||
AccountID: msg.AccountID,
|
||||
AmoID: userInfo.ID,
|
||||
Name: userInfo.Name,
|
||||
Subdomain: msg.RefererURL,
|
||||
AmoID: userInfo.ID,
|
||||
Amouserid: userInfo.ID,
|
||||
Country: userInfo.Country,
|
||||
DriveURL: userInfo.DriveUrl,
|
||||
}
|
||||
|
||||
err = m.repo.AmoRepo.CreateAccount(ctx, msg.AccountID, toCreate)
|
||||
err = m.repo.AmoRepo.CreateAccount(ctx, toCreate)
|
||||
if err != nil {
|
||||
m.logger.Error("error create account in db in CreateUserFromWebHook", zap.Error(err))
|
||||
return nil, err
|
||||
|
Loading…
Reference in New Issue
Block a user