feat:
* added chunks of 1000 for deletion of role
This commit is contained in:
parent
e52164665f
commit
40a0a2fbcc
|
@ -112,20 +112,32 @@ func updateRoles(ctx context.Context, deletedRoles []string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range allData.Users {
|
chunkSize := 1000
|
||||||
roles := utils.DeleteFromArray(allData.Users[i].Roles, deletedRoles)
|
totalUsers := len(allData.Users)
|
||||||
if len(allData.Users[i].Roles) != len(roles) {
|
|
||||||
|
for start := 0; start < totalUsers; start += chunkSize {
|
||||||
|
end := start + chunkSize
|
||||||
|
if end > totalUsers {
|
||||||
|
end = totalUsers
|
||||||
|
}
|
||||||
|
|
||||||
|
chunkUsers := allData.Users[start:end]
|
||||||
|
|
||||||
|
for i := range chunkUsers {
|
||||||
|
roles := utils.DeleteFromArray(chunkUsers[i].Roles, deletedRoles)
|
||||||
|
if len(chunkUsers[i].Roles) != len(roles) {
|
||||||
updatedValues := map[string]interface{}{
|
updatedValues := map[string]interface{}{
|
||||||
"roles": strings.Join(roles, ","),
|
"roles": strings.Join(roles, ","),
|
||||||
"updated_at": time.Now().Unix(),
|
"updated_at": time.Now().Unix(),
|
||||||
}
|
}
|
||||||
id := []string{allData.Users[i].ID}
|
id := []string{chunkUsers[i].ID}
|
||||||
err = db.Provider.UpdateUsers(ctx, updatedValues, id)
|
err = db.Provider.UpdateUsers(ctx, updatedValues, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user