Skip to content

Commit 9148e77

Browse files
author
Burak Serdar
committed
Print more info, fix resultset return
1 parent e89c4da commit 9148e77

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

crud/src/main/java/com/redhat/lightblue/mediator/Mediator.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -527,13 +527,21 @@ public Response explain(FindRequest req) {
527527
finder.explain(ctx, req.getCRUDFindRequest());
528528

529529
List<JsonDoc> foundDocuments = ctx.getOutputDocumentsWithoutErrors();
530-
if (foundDocuments != null && foundDocuments.size() == ctx.getDocuments().size()) {
530+
if (foundDocuments != null && !foundDocuments.isEmpty()) {
531531
ctx.setStatus(OperationStatus.COMPLETE);
532-
} else if (foundDocuments != null && !foundDocuments.isEmpty()) {
533-
ctx.setStatus(OperationStatus.PARTIAL);
532+
List<DocCtx> documents = ctx.getDocuments();
533+
response.setMatchCount(documents.size());
534+
if (documents != null) {
535+
List<JsonDoc> resultList = new ArrayList<>(documents.size());
536+
for (DocCtx doc : documents) {
537+
resultList.add(doc.getOutputDocument());
538+
}
539+
response.setEntityData(JsonDoc.listToDoc(resultList, factory.getNodeFactory()));
540+
}
534541
} else {
535542
ctx.setStatus(OperationStatus.ERROR);
536-
}
543+
}
544+
537545
response.setStatus(ctx.getStatus());
538546
response.getErrors().addAll(ctx.getErrors());
539547
response.getDataErrors().addAll(ctx.getDataErrors());

crud/src/main/java/com/redhat/lightblue/mediator/SimpleFindImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
2424

25+
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
26+
2527
import com.redhat.lightblue.OperationStatus;
2628

2729
import com.redhat.lightblue.crud.CRUDController;
@@ -33,6 +35,7 @@
3335
import com.redhat.lightblue.metadata.EntityMetadata;
3436

3537
import com.redhat.lightblue.util.JsonDoc;
38+
import com.redhat.lightblue.util.Path;
3639

3740
public class SimpleFindImpl implements Finder {
3841

@@ -65,13 +68,24 @@ public void explain(OperationContext ctx,
6568
CRUDFindRequest req) {
6669
if(controller instanceof ExplainQuerySupport) {
6770
JsonDoc doc=new JsonDoc(ctx.getFactory().getNodeFactory().objectNode());
71+
if(req.getQuery()!=null)
72+
doc.modify(new Path("request.query"),req.getQuery().toJson(),true);
73+
if(req.getProjection()!=null)
74+
doc.modify(new Path("request.projection"),req.getProjection().toJson(),true);
75+
if(req.getSort()!=null)
76+
doc.modify(new Path("request.sort"),req.getSort().toJson(),true);
77+
if(req.getFrom()!=null)
78+
doc.modify(new Path("request.from"),JsonNodeFactory.instance.numberNode(req.getFrom()),true);
79+
if(req.getTo()!=null)
80+
doc.modify(new Path("request.to"),JsonNodeFactory.instance.numberNode(req.getTo()),true);
6881
((ExplainQuerySupport)controller).explain(ctx,
6982
req.getQuery(),
7083
req.getProjection(),
7184
req.getSort(),
7285
req.getFrom(),
7386
req.getTo(),
7487
doc);
88+
LOGGER.debug("Adding explain doc:{}",doc);
7589
ctx.addDocument(doc);
7690
}
7791
}

0 commit comments

Comments
 (0)