From e88b368f98ad99e91110ab88e96bc5d49ad97270 Mon Sep 17 00:00:00 2001 From: harish Date: Fri, 30 Aug 2024 17:43:04 +0530 Subject: [PATCH] Update permission in role to array --- .../gepafin/tendermanagement/dao/RoleDao.java | 17 ++++++++++++----- .../tendermanagement/model/request/RoleReq.java | 4 +++- .../model/response/RoleResponseBean.java | 3 ++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/RoleDao.java b/src/main/java/net/gepafin/tendermanagement/dao/RoleDao.java index 2f5627cc..200b9916 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/RoleDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/RoleDao.java @@ -16,6 +16,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -30,7 +32,7 @@ public class RoleDao { @Autowired private RegionDao regionDao; - + private RoleEntity roleEntity; public RoleResponseBean createRole(RoleReq roleReq) { log.info("Creating new role with details: {}", roleReq); RoleEntity roleEntity = convertRoleRequestToRoleEntity(roleReq); @@ -43,7 +45,7 @@ public class RoleDao { RoleEntity roleEntity = new RoleEntity(); roleEntity.setRoleName(roleReq.getRoleName()); roleEntity.setRoleType(roleReq.getRoleType()); - roleEntity.setPermissions(roleReq.getPermissions()); + roleEntity.setPermissions(String.join(",", roleReq.getPermissions())); roleEntity.setDescription(roleReq.getDescription()); RegionEntity regionEntity =regionDao.validateRegion(roleReq.getRegionId()); roleEntity.setRegion(regionEntity); @@ -51,6 +53,7 @@ public class RoleDao { } public RoleResponseBean convertRoleEntityToRoleResponse(RoleEntity roleEntity) { + this.roleEntity = roleEntity; RoleResponseBean roleResponseBean = new RoleResponseBean(); roleResponseBean.setId(roleEntity.getId()); roleResponseBean.setCreatedDate(roleEntity.getCreatedDate()); @@ -58,7 +61,11 @@ public class RoleDao { roleResponseBean.setRoleName(roleEntity.getRoleName()); roleResponseBean.setRoleType(roleEntity.getRoleType()); roleResponseBean.setDescription(roleEntity.getDescription()); - roleResponseBean.setPermissions(roleEntity.getPermissions()); + String permissionsString = roleEntity.getPermissions(); + List permissionsList = permissionsString != null && !permissionsString.isEmpty() + ? Arrays.asList(permissionsString.split(",")) + : new ArrayList<>(); + roleResponseBean.setPermissions(permissionsList); RegionResponseBean regionResponseBean = regionDao.convertRegionEntityToRegionResponse(roleEntity.getRegion()); roleResponseBean.setRegion(regionResponseBean); return roleResponseBean; @@ -75,7 +82,7 @@ public class RoleDao { setIfUpdated(existingRole::getRoleName, existingRole::setRoleName, roleReq.getRoleName()); setIfUpdated(existingRole::getRoleType, existingRole::setRoleType, roleReq.getRoleType()); setIfUpdated(existingRole::getDescription, existingRole::setDescription, roleReq.getDescription()); - setIfUpdated(existingRole::getPermissions, existingRole::setPermissions, roleReq.getPermissions()); + setIfUpdated(existingRole::getPermissions, existingRole::setPermissions, String.join(",", roleReq.getPermissions())); existingRole = roleRepository.save(existingRole); @@ -109,7 +116,7 @@ public class RoleDao { log.info("Fetching all roles"); List roles = roleRepository.findAll() .stream() - .map(roleEntity -> Utils.convertObject(roleEntity, RoleResponseBean.class)) + .map(this::convertRoleEntityToRoleResponse) .collect(Collectors.toList()); log.info("Total roles found: {}", roles.size()); return roles; diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/RoleReq.java b/src/main/java/net/gepafin/tendermanagement/model/request/RoleReq.java index 50cf17ce..cd5e81d1 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/RoleReq.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/RoleReq.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; +import java.util.List; + @Getter @Setter public class RoleReq { @@ -16,7 +18,7 @@ public class RoleReq { private String description; - private String permissions; + private List permissions; private Long regionId; diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/RoleResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/RoleResponseBean.java index da097f48..93917e99 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/RoleResponseBean.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/RoleResponseBean.java @@ -7,12 +7,13 @@ import net.gepafin.tendermanagement.entities.RegionEntity; import net.gepafin.tendermanagement.model.BaseBean; import java.time.LocalDateTime; +import java.util.List; @Data public class RoleResponseBean extends BaseBean { private String roleName; private String description; - private String permissions; + private List permissions; private RegionResponseBean region; private String roleType; }