77 lines
2.3 KiB
Java
77 lines
2.3 KiB
Java
package dev.lions.user.manager.mapper;
|
|
|
|
import dev.lions.user.manager.dto.role.RoleDTO;
|
|
import dev.lions.user.manager.enums.role.TypeRole;
|
|
import org.keycloak.representations.idm.RoleRepresentation;
|
|
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* Mapper pour convertir entre RoleDTO et Keycloak RoleRepresentation
|
|
*/
|
|
public class RoleMapper {
|
|
|
|
/**
|
|
* Convertit une RoleRepresentation Keycloak en RoleDTO
|
|
*/
|
|
public static RoleDTO toDTO(RoleRepresentation roleRep, String realmName, TypeRole typeRole) {
|
|
if (roleRep == null) {
|
|
return null;
|
|
}
|
|
|
|
return RoleDTO.builder()
|
|
.id(roleRep.getId())
|
|
.name(roleRep.getName())
|
|
.description(roleRep.getDescription())
|
|
.typeRole(typeRole)
|
|
.realmName(realmName)
|
|
.composite(roleRep.isComposite())
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* Convertit un RoleDTO en RoleRepresentation Keycloak
|
|
*/
|
|
public static RoleRepresentation toRepresentation(RoleDTO roleDTO) {
|
|
if (roleDTO == null) {
|
|
return null;
|
|
}
|
|
|
|
RoleRepresentation roleRep = new RoleRepresentation();
|
|
roleRep.setId(roleDTO.getId());
|
|
roleRep.setName(roleDTO.getName());
|
|
roleRep.setDescription(roleDTO.getDescription());
|
|
roleRep.setComposite(roleDTO.isComposite());
|
|
roleRep.setClientRole(roleDTO.getTypeRole() == TypeRole.CLIENT_ROLE);
|
|
|
|
return roleRep;
|
|
}
|
|
|
|
/**
|
|
* Convertit une liste de RoleRepresentation en liste de RoleDTO
|
|
*/
|
|
public static List<RoleDTO> toDTOList(List<RoleRepresentation> roleReps, String realmName, TypeRole typeRole) {
|
|
if (roleReps == null) {
|
|
return List.of();
|
|
}
|
|
|
|
return roleReps.stream()
|
|
.map(roleRep -> toDTO(roleRep, realmName, typeRole))
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
/**
|
|
* Convertit une liste de RoleDTO en liste de RoleRepresentation
|
|
*/
|
|
public static List<RoleRepresentation> toRepresentationList(List<RoleDTO> roleDTOs) {
|
|
if (roleDTOs == null) {
|
|
return List.of();
|
|
}
|
|
|
|
return roleDTOs.stream()
|
|
.map(RoleMapper::toRepresentation)
|
|
.collect(Collectors.toList());
|
|
}
|
|
}
|