NomGraphQlResponse.java

  1. package no.nav.data.team.resource.dto;

  2. import com.fasterxml.jackson.databind.node.ArrayNode;
  3. import lombok.AllArgsConstructor;
  4. import lombok.Builder;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import lombok.experimental.UtilityClass;
  8. import no.nav.nom.graphql.model.OrgEnhetDto;
  9. import no.nav.nom.graphql.model.RessursDto;
  10. import no.nav.nom.graphql.model.ResultCodeDto;

  11. import java.util.List;
  12. import java.util.Map;

  13. import static java.util.stream.Collectors.toMap;


  14. @UtilityClass
  15. public class NomGraphQlResponse {

  16.     @Data
  17.     public static class SingleRessurs {

  18.         private DataWrapper data;
  19.         private ArrayNode errors;

  20.         @Data
  21.         public static class DataWrapper {

  22.             RessursDto ressurs;

  23.         }

  24.     }

  25.     @Data
  26.     public static class SingleOrg {

  27.         private DataWrapper data;
  28.         private ArrayNode errors;

  29.         @Data
  30.         public static class DataWrapper {

  31.             OrgEnhetDto orgEnhet;

  32.         }

  33.     }

  34.     @Data
  35.     public static class MultiRessurs {

  36.         private DataWrapper data;
  37.         private ArrayNode errors;

  38.         @Data
  39.         public static class DataWrapper {

  40.             List<RessursWrapper> ressurser;

  41.             public Map<String, RessursDto> getRessurserAsMap() {
  42.                 return ressurser.stream()
  43.                         .filter(r -> r.getRessurs() != null)
  44.                         .collect(toMap(RessursWrapper::getId, RessursWrapper::getRessurs));
  45.             }

  46.             @Data
  47.             @Builder
  48.             @AllArgsConstructor
  49.             @NoArgsConstructor
  50.             public static class RessursWrapper {

  51.                 String id;
  52.                 ResultCodeDto code;
  53.                 RessursDto ressurs;

  54.             }
  55.         }

  56.     }

  57. }