public DispatcherResult getAssignment()

in prototype/dispatch/order-dispatcher/src/main/java/com/aws/proto/dispatching/data/ddb/DdbAssignmentService.java [95:158]


    public DispatcherResult getAssignment(UUID problemId) {
//        return Uni.createFrom().completionStage(() -> dbClient.query(this.getQueryRequest("ID", problemId)))
//          .onItem().transform(res -> {
//
//              if(!res.hasItems()) {
//                  return null;
//              }
//              Map<String, AttributeValue> dbItem = res.items().get(0);
//
//              ObjectMapper mapper = new ObjectMapper();
//              List<AssignedOrders> assigned = dbItem.get("assigned").l().stream().map(av -> {
//                  JsonNode node = JsonAttributeValueUtil.fromAttributeValue(av);
//                  try {
//                      return mapper.treeToValue(node, AssignedOrders.class);
//                  } catch (JsonProcessingException e) {
//                      e.printStackTrace();
//                  }
//                  return null;
//              }).collect(Collectors.toList());
//
//              List<String> unassigned = dbItem.get("unassigned").l().stream().map(AttributeValue::s).collect(Collectors.toList());
//              Long createdAt = Long.parseLong(dbItem.get("createdAt").n());
//              String executionId = dbItem.get("executionId").s();
//              String state = dbItem.get("state").s();
//              String score = dbItem.get("score").s();
//
//              return new DispatcherResult(problemId, executionId, createdAt, assigned, unassigned, state, score);
//        });

        List<Map<String, AttributeValue>> dbItems = dbClient.query(this.getQueryRequest("ID", problemId)).items();
        if (dbItems.size() == 0) {
            return null;
        }

        Map<String, AttributeValue> dbItem = dbItems.get(0);
        ObjectMapper mapper = new ObjectMapper();
        List<AssignedOrders> assigned = dbItem.get("assigned").l().stream().map(av -> {
            JsonNode node = JsonAttributeValueUtil.fromAttributeValue(av);
            try {
                return mapper.treeToValue(node, AssignedOrders.class);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return null;
        }).collect(Collectors.toList());

        List<String> unassigned = dbItem.get("unassigned").l().stream().map(AttributeValue::s).collect(Collectors.toList());
        Long createdAt = Long.parseLong(dbItem.get("createdAt").n());
        String executionId = dbItem.get("executionId").s();
        String state = dbItem.get("state").s();
        String score = dbItem.get("score").s();

        DispatcherResult result = new DispatcherResult(problemId, executionId, createdAt, assigned, unassigned, state, score);
        result.executionId = dbItem.get("executionId").s();
        result.solverDurationInMs = Long.parseLong(dbItem.get("solverDurationInMs").n());
        try {
            result.distanceMatrixMetrics = mapper.treeToValue(JsonAttributeValueUtil.fromAttributeValue(dbItem.get("distanceMatrixMetrics")), DispatcherResult.DistanceMatrixMetrics.class);
        } catch(JsonProcessingException e) {
            logger.error("Error parsing ddbItem :: distanceMatrixMetrics", e);
        }

        return result;

    }