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
|
github.com/twmb/franz-go v1.16.1
|
||||||
go.uber.org/zap v1.27.0
|
go.uber.org/zap v1.27.0
|
||||||
google.golang.org/protobuf v1.33.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 (
|
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=
|
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 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/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-20240612135015-429052cf2e7d h1:M5Uzn8cUtz3ZX+4C2+XdVW49n3cDsrO/SlYy/LePQ38=
|
||||||
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/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
|
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)
|
user, err := s.repository.AmoRepo.GetCurrentAccount(ctx, accountID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == sql.ErrNoRows {
|
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...)
|
listUser[token.AccountID] = append(listUser[token.AccountID], userData.Embedded.Users...)
|
||||||
}
|
}
|
||||||
|
|
||||||
var usersForUpdateAndCreate []model.User
|
|
||||||
for accountID, users := range listUser {
|
for accountID, users := range listUser {
|
||||||
mainAccount, err := m.repo.AmoRepo.GetCurrentAccount(ctx, accountID)
|
mainAccount, err := m.repo.AmoRepo.GetCurrentAccount(ctx, accountID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -112,30 +111,49 @@ func (m *Methods) CheckUsers(ctx context.Context, allTokens []model.Token) error
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
currentUserUsers, err := m.repo.AmoRepo.GetUserUsersByID(ctx, mainAccount.Amouserid)
|
currentUserUsers, err := m.repo.AmoRepo.GetUserUsersByID(ctx, mainAccount.AmoID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Error("error getting user users by amo user id", zap.Error(err))
|
m.logger.Error("error getting user users by amo user id", zap.Error(err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, user := range users {
|
for _, user := range users {
|
||||||
usersForUpdateAndCreate = append(usersForUpdateAndCreate, model.User{
|
found := false
|
||||||
AmoID: user.ID,
|
for _, currentUser := range currentUserUsers {
|
||||||
Name: user.FullName,
|
found = true
|
||||||
Group: int32(user.Rights.GroupID),
|
if user.ID == currentUser.AmoUserID {
|
||||||
Role: int32(user.Rights.RoleID),
|
err := m.repo.AmoRepo.UpdateAmoAccountUser(ctx, model.AmoAccountUser{
|
||||||
|
AmoID: currentUser.AmoID,
|
||||||
|
AmoUserID: currentUser.AmoUserID,
|
||||||
|
Name: user.Name,
|
||||||
Email: user.Email,
|
Email: user.Email,
|
||||||
Amouserid: mainAccount.Amouserid,
|
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
|
var deletedUserIDs []int64
|
||||||
for _, currentUserUser := range currentUserUsers {
|
for _, currentUserUser := range currentUserUsers {
|
||||||
// todo костыль нужно главный аккаунт выносить в отдельную таблицу - например companyAmo
|
|
||||||
if currentUserUser.AmoID == mainAccount.AmoID {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
found := false
|
found := false
|
||||||
for _, user := range users {
|
for _, user := range users {
|
||||||
if currentUserUser.AmoID == user.ID {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,16 +529,16 @@ func (m *Methods) CreateUserFromWebHook(ctx context.Context, msg models.KafkaMes
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
toCreate := model.User{
|
toCreate := model.AmoAccount{
|
||||||
|
AccountID: msg.AccountID,
|
||||||
|
AmoID: userInfo.ID,
|
||||||
Name: userInfo.Name,
|
Name: userInfo.Name,
|
||||||
Subdomain: msg.RefererURL,
|
Subdomain: msg.RefererURL,
|
||||||
AmoID: userInfo.ID,
|
|
||||||
Amouserid: userInfo.ID,
|
|
||||||
Country: userInfo.Country,
|
Country: userInfo.Country,
|
||||||
DriveURL: userInfo.DriveUrl,
|
DriveURL: userInfo.DriveUrl,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = m.repo.AmoRepo.CreateAccount(ctx, msg.AccountID, toCreate)
|
err = m.repo.AmoRepo.CreateAccount(ctx, toCreate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Error("error create account in db in CreateUserFromWebHook", zap.Error(err))
|
m.logger.Error("error create account in db in CreateUserFromWebHook", zap.Error(err))
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user