* added chunks of 1000 for deletion of role
This commit is contained in:
lemonScaletech 2024-01-10 12:56:30 +05:30
parent e52164665f
commit 40a0a2fbcc

View File

@ -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
} }