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.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<String> 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<RoleResponseBean> 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;

View File

@@ -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<String> permissions;
private Long regionId;

View File

@@ -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<String> permissions;
private RegionResponseBean region;
private String roleType;
}