From b8c2ab4cf8f8e8beaaaee96ee2810f961ddee3a7 Mon Sep 17 00:00:00 2001 From: lemonScaletech Date: Fri, 8 Dec 2023 10:38:09 +0530 Subject: [PATCH] refactoring: * removed extra for loop * commenting on functions --- server/resolvers/update_env.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/server/resolvers/update_env.go b/server/resolvers/update_env.go index 4bda560..68087b4 100644 --- a/server/resolvers/update_env.go +++ b/server/resolvers/update_env.go @@ -94,6 +94,8 @@ func clearSessionIfRequired(currentData, updatedData map[string]interface{}) { } } +// updateRoles will update DB for user roles, if a role is deleted by admin +// then this function will those roles from user roles if exists func updateRoles(ctx context.Context, deletedRoles []string) error { data, err := db.Provider.ListUsers(ctx, &model.Pagination{ Limit: 1, @@ -111,20 +113,17 @@ func updateRoles(ctx context.Context, deletedRoles []string) error { } for i := range allData.Users { - now := time.Now().Unix() - allData.Users[i].Roles = utils.DeleteFromArray(allData.Users[i].Roles, deletedRoles) - allData.Users[i].UpdatedAt = &now - } - - for i := range allData.Users { - updatedValues := map[string]interface{}{ - "roles": strings.Join(allData.Users[i].Roles, ","), - "updated_at": time.Now().Unix(), - } - id := []string{allData.Users[i].ID} - err = db.Provider.UpdateUsers(ctx, updatedValues, id) - if err != nil { - return err + roles := utils.DeleteFromArray(allData.Users[i].Roles, deletedRoles) + if len(allData.Users[i].Roles) != len(roles) { + updatedValues := map[string]interface{}{ + "roles": strings.Join(roles, ","), + "updated_at": time.Now().Unix(), + } + id := []string{allData.Users[i].ID} + err = db.Provider.UpdateUsers(ctx, updatedValues, id) + if err != nil { + return err + } } } return nil