test get list user passed

This commit is contained in:
Pavel 2024-04-20 22:02:13 +03:00
parent c3d20a9d5f
commit c90d1dfb31
2 changed files with 46 additions and 41 deletions

@ -6,15 +6,13 @@ type RequestGetListUsers struct {
}
type ResponseGetListUsers struct {
TotalItems int `json:"_total_items"`
//Page int `json:"_page"`
//PageCount int `json:"_page_count"`
Links LinksSelf `json:"_links"`
Embedded EmbeddedGetListUsers `json:"_embedded"`
TotalItems int `json:"_total_items"`
Links LinksSelf `json:"_links"`
Embedded EmbeddedGetListUsers `json:"_embedded"`
}
type EmbeddedGetListUsers struct {
Users []Users `json:"users"`
Users []Users `json:"items"`
}
type SelfLink struct {
@ -26,18 +24,17 @@ type LinksSelf struct {
}
type Users struct {
ID int32 `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
UUID string `json:"uuid"`
IsConfirmed bool `json:"is_confirmed"`
ConfirmLinkSentAt int `json:"confirm_link_sent_at"`
Lang string `json:"lang"`
FullName string `json:"full_name"`
Groups Groups `json:"groups"`
//Rights Rights `json:"rights"`
Links SelfLink `json:"_links"`
Embedded Embedded `json:"_embedded"`
ID int32 `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
UUID string `json:"uuid"`
IsConfirmed bool `json:"is_confirmed"`
ConfirmLinkSentAt int `json:"confirm_link_sent_at"`
Lang string `json:"lang"`
FullName string `json:"full_name"`
Groups []Groups `json:"groups"`
Links SelfLink `json:"_links"`
Rights Rights `json:"_embedded"`
}
type Rights struct {
@ -51,9 +48,9 @@ type Rights struct {
IsAdmin bool `json:"is_admin"`
IsFree bool `json:"is_free"`
IsActive bool `json:"is_active"`
GroupID *int `json:"group_id,omitempty"`
RoleID *int `json:"role_id,omitempty"`
Role *string `json:"role,omitempty"`
GroupID int `json:"group_id,omitempty"`
RoleID int `json:"role_id,omitempty"`
Role string `json:"role,omitempty"`
}
type Leads struct {

@ -34,6 +34,7 @@ func NewDataUpdaterWC(deps Deps) *DataUpdater {
func (wc *DataUpdater) Start(ctx context.Context) {
nextStart := calculateTime()
ticker := time.NewTicker(time.Second * time.Duration(nextStart))
//ticker := time.NewTicker(10 * time.Second)
defer ticker.Stop()
for {
@ -234,24 +235,22 @@ func (wc *DataUpdater) UserUpdater(ctx context.Context, allTokens []model.Token)
for _, token := range allTokens {
page := 1
limit := 250
for {
userData, err := wc.amoClient.GetUserList(models.RequestGetListUsers{
Page: page,
Limit: limit,
}, token.AccessToken)
if err != nil {
wc.logger.Error("error getting user list", zap.Error(err))
break
}
if userData == nil || len(userData.Embedded.Users) == 0 {
break
}
listUser[token.AccountID] = append(listUser[token.AccountID], userData.Embedded.Users...)
page++
userData, err := wc.amoClient.GetUserList(models.RequestGetListUsers{
Page: page,
Limit: limit,
}, token.AccessToken)
if err != nil {
wc.logger.Error("error getting user list", zap.Error(err))
break
}
if userData == nil || len(userData.Embedded.Users) == 0 {
break
}
listUser[token.AccountID] = append(listUser[token.AccountID], userData.Embedded.Users...)
page++
}
for accountID, users := range listUser {
@ -261,14 +260,23 @@ func (wc *DataUpdater) UserUpdater(ctx context.Context, allTokens []model.Token)
}
for _, user := range users {
if user.ID == mainAccount.AmoID {
err := wc.repo.AmoRepo.CheckMainUser(ctx, model.User{
Name: user.Name,
Role: int32(user.Rights.RoleID),
Group: int32(user.Rights.GroupID),
Email: user.Email,
AmoID: user.ID,
})
if err != nil {
return err
}
}
err := wc.repo.AmoRepo.CheckAndUpdateUsers(ctx, model.User{
AmoID: user.ID,
Name: user.FullName,
Group: int32(*user.Embedded.Rights.GroupID),
Role: int32(*user.Embedded.Rights.RoleID),
Group: int32(user.Rights.GroupID),
Role: int32(user.Rights.RoleID),
Email: user.Email,
Amouserid: mainAccount.Amouserid,
})