Update permission in role to array

This commit is contained in:
harish
2024-08-30 17:43:04 +05:30
parent 1184420f89
commit e88b368f98
3 changed files with 17 additions and 7 deletions

View File

@@ -16,6 +16,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -30,7 +32,7 @@ public class RoleDao {
@Autowired @Autowired
private RegionDao regionDao; private RegionDao regionDao;
private RoleEntity roleEntity;
public RoleResponseBean createRole(RoleReq roleReq) { public RoleResponseBean createRole(RoleReq roleReq) {
log.info("Creating new role with details: {}", roleReq); log.info("Creating new role with details: {}", roleReq);
RoleEntity roleEntity = convertRoleRequestToRoleEntity(roleReq); RoleEntity roleEntity = convertRoleRequestToRoleEntity(roleReq);
@@ -43,7 +45,7 @@ public class RoleDao {
RoleEntity roleEntity = new RoleEntity(); RoleEntity roleEntity = new RoleEntity();
roleEntity.setRoleName(roleReq.getRoleName()); roleEntity.setRoleName(roleReq.getRoleName());
roleEntity.setRoleType(roleReq.getRoleType()); roleEntity.setRoleType(roleReq.getRoleType());
roleEntity.setPermissions(roleReq.getPermissions()); roleEntity.setPermissions(String.join(",", roleReq.getPermissions()));
roleEntity.setDescription(roleReq.getDescription()); roleEntity.setDescription(roleReq.getDescription());
RegionEntity regionEntity =regionDao.validateRegion(roleReq.getRegionId()); RegionEntity regionEntity =regionDao.validateRegion(roleReq.getRegionId());
roleEntity.setRegion(regionEntity); roleEntity.setRegion(regionEntity);
@@ -51,6 +53,7 @@ public class RoleDao {
} }
public RoleResponseBean convertRoleEntityToRoleResponse(RoleEntity roleEntity) { public RoleResponseBean convertRoleEntityToRoleResponse(RoleEntity roleEntity) {
this.roleEntity = roleEntity;
RoleResponseBean roleResponseBean = new RoleResponseBean(); RoleResponseBean roleResponseBean = new RoleResponseBean();
roleResponseBean.setId(roleEntity.getId()); roleResponseBean.setId(roleEntity.getId());
roleResponseBean.setCreatedDate(roleEntity.getCreatedDate()); roleResponseBean.setCreatedDate(roleEntity.getCreatedDate());
@@ -58,7 +61,11 @@ public class RoleDao {
roleResponseBean.setRoleName(roleEntity.getRoleName()); roleResponseBean.setRoleName(roleEntity.getRoleName());
roleResponseBean.setRoleType(roleEntity.getRoleType()); roleResponseBean.setRoleType(roleEntity.getRoleType());
roleResponseBean.setDescription(roleEntity.getDescription()); roleResponseBean.setDescription(roleEntity.getDescription());
roleResponseBean.setPermissions(roleEntity.getPermissions()); String permissionsString = roleEntity.getPermissions();
List<String> permissionsList = permissionsString != null && !permissionsString.isEmpty()
? Arrays.asList(permissionsString.split(","))
: new ArrayList<>();
roleResponseBean.setPermissions(permissionsList);
RegionResponseBean regionResponseBean = regionDao.convertRegionEntityToRegionResponse(roleEntity.getRegion()); RegionResponseBean regionResponseBean = regionDao.convertRegionEntityToRegionResponse(roleEntity.getRegion());
roleResponseBean.setRegion(regionResponseBean); roleResponseBean.setRegion(regionResponseBean);
return roleResponseBean; return roleResponseBean;
@@ -75,7 +82,7 @@ public class RoleDao {
setIfUpdated(existingRole::getRoleName, existingRole::setRoleName, roleReq.getRoleName()); setIfUpdated(existingRole::getRoleName, existingRole::setRoleName, roleReq.getRoleName());
setIfUpdated(existingRole::getRoleType, existingRole::setRoleType, roleReq.getRoleType()); setIfUpdated(existingRole::getRoleType, existingRole::setRoleType, roleReq.getRoleType());
setIfUpdated(existingRole::getDescription, existingRole::setDescription, roleReq.getDescription()); 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); existingRole = roleRepository.save(existingRole);
@@ -109,7 +116,7 @@ public class RoleDao {
log.info("Fetching all roles"); log.info("Fetching all roles");
List<RoleResponseBean> roles = roleRepository.findAll() List<RoleResponseBean> roles = roleRepository.findAll()
.stream() .stream()
.map(roleEntity -> Utils.convertObject(roleEntity, RoleResponseBean.class)) .map(this::convertRoleEntityToRoleResponse)
.collect(Collectors.toList()); .collect(Collectors.toList());
log.info("Total roles found: {}", roles.size()); log.info("Total roles found: {}", roles.size());
return roles; return roles;

View File

@@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
@Getter @Getter
@Setter @Setter
public class RoleReq { public class RoleReq {
@@ -16,7 +18,7 @@ public class RoleReq {
private String description; private String description;
private String permissions; private List<String> permissions;
private Long regionId; private Long regionId;

View File

@@ -7,12 +7,13 @@ import net.gepafin.tendermanagement.entities.RegionEntity;
import net.gepafin.tendermanagement.model.BaseBean; import net.gepafin.tendermanagement.model.BaseBean;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@Data @Data
public class RoleResponseBean extends BaseBean { public class RoleResponseBean extends BaseBean {
private String roleName; private String roleName;
private String description; private String description;
private String permissions; private List<String> permissions;
private RegionResponseBean region; private RegionResponseBean region;
private String roleType; private String roleType;
} }