PaMember.java
package no.nav.data.team.po.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Singular;
import no.nav.data.team.member.dto.MemberResponse;
import no.nav.data.team.po.dto.PaMemberRequest;
import no.nav.data.team.resource.NomClient;
import no.nav.data.team.resource.dto.ResourceResponse;
import no.nav.data.team.shared.domain.Member;
import no.nav.data.team.team.domain.Role;
import java.util.List;
import static no.nav.data.common.utils.StreamUtils.copyOf;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PaMember implements Member {
private String navIdent;
@Singular
private List<Role> roles;
private String description;
public static PaMember convert(PaMemberRequest request) {
return PaMember.builder()
.navIdent(request.getNavIdent())
.roles(request.getRoles())
.description(request.getDescription())
.build();
}
public MemberResponse convertToResponse() {
var builder = MemberResponse.builder()
.navIdent(getNavIdent())
.roles(copyOf(getRoles()))
.description(getDescription());
NomClient.getInstance()
.getByNavIdent(getNavIdent())
.ifPresentOrElse(resource ->
builder.resource(resource.convertToResponse())
, () -> builder.resource(ResourceResponse.builder().navIdent(getNavIdent()).stale(true).build()));
return builder.build();
}
}