NomGraphQlResponse.java
package no.nav.data.team.resource.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.UtilityClass;
import no.nav.nom.graphql.model.OrgEnhetDto;
import no.nav.nom.graphql.model.RessursDto;
import no.nav.nom.graphql.model.ResultCodeDto;
import tools.jackson.databind.node.ArrayNode;
import java.util.List;
import java.util.Map;
import static java.util.stream.Collectors.toMap;
@UtilityClass
public class NomGraphQlResponse {
@Data
public static class SingleRessurs {
private DataWrapper data;
private ArrayNode errors;
@Data
public static class DataWrapper {
RessursDto ressurs;
}
}
@Data
public static class SingleOrg {
private DataWrapper data;
private ArrayNode errors;
@Data
public static class DataWrapper {
OrgEnhetDto orgEnhet;
}
}
@Data
public static class MultiRessurs {
private DataWrapper data;
private ArrayNode errors;
@Data
public static class DataWrapper {
List<RessursWrapper> ressurser;
public Map<String, RessursDto> getRessurserAsMap() {
return ressurser.stream()
.filter(r -> r.getRessurs() != null)
.collect(toMap(RessursWrapper::getId, RessursWrapper::getRessurs));
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class RessursWrapper {
String id;
ResultCodeDto code;
RessursDto ressurs;
}
}
}
@Data
public static class MultiOrg {
private DataWrapper data;
private ArrayNode errors;
@Data
public static class DataWrapper {
List<OrgEnhetWrapper> orgEnheter;
public Map<String, OrgEnhetDto> getOrgEnheterAsMap() {
return orgEnheter.stream()
.filter(r -> r.getOrgEnhet() != null)
.collect(toMap(OrgEnhetWrapper::getId, OrgEnhetWrapper::getOrgEnhet));
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class OrgEnhetWrapper {
String id;
ResultCodeDto code;
OrgEnhetDto orgEnhet;
}
}
}
}