Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import com.fasterxml.jackson.databind.JsonNode;

import eu.knowledge.engine.rest.api.NotFoundException;
import eu.knowledge.engine.rest.model.AskExchangeInfo;
import eu.knowledge.engine.rest.model.AskResult;
import eu.knowledge.engine.rest.model.KnowledgeInteractionWithId;
Expand Down Expand Up @@ -151,14 +150,16 @@ public void scAskPost(

LOG.debug("Bindings in result is {}", askResult.getBindings());
LOG.debug("KnowledgeGapsEnabled is {}", ki.getKnowledgeGapsEnabled());

AskResult ar = new AskResult().bindingSet(this.bindingSetToList(askResult.getBindings())).exchangeInfo(infos);
// distinguish between knowledge gaps enabled or not to produce an AskResult or an AskResultWithGaps

AskResult ar = new AskResult().bindingSet(this.bindingSetToList(askResult.getBindings()))
.exchangeInfo(infos);
// distinguish between knowledge gaps enabled or not to produce an AskResult or
// an AskResultWithGaps
if (ki.getKnowledgeGapsEnabled()) {
LOG.info("Knowledge gaps in result is {}", askResult.getKnowledgeGaps());
ar.knowledgeGaps(this.knowledgeGapsToList(askResult.getKnowledgeGaps()));
ar.knowledgeGaps(this.knowledgeGapsToList(askResult.getKnowledgeGaps()));
}
asyncResponse.resume(Response.status(Status.OK).entity(ar).build());
asyncResponse.resume(Response.status(Status.OK).entity(ar).build());
});

} catch (URISyntaxException | InterruptedException | ExecutionException e) {
Expand All @@ -173,6 +174,13 @@ public void scAskPost(
response.setMessageType("error");
response.setMessage(e.getMessage());
asyncResponse.resume(Response.status(Status.BAD_REQUEST).entity(response).build());
} catch (IllegalStateException e) {
// triggered when, for example, the SC was stopped before the KI is activated.
LOG.trace("{}", e);
var response = new ResponseMessage();
response.setMessageType("error");
response.setMessage(e.getMessage());
asyncResponse.resume(Response.status(Status.GONE).entity(response).build());
}
}

Expand Down Expand Up @@ -221,8 +229,7 @@ public void scPostPost(
@Parameter(description = "The Knowledge Base Id for which to execute the ask.", required = true) @HeaderParam("Knowledge-Base-Id") String knowledgeBaseId,
@Parameter(description = "The Post Knowledge Interaction Id to execute.", required = true) @HeaderParam("Knowledge-Interaction-Id") String knowledgeInteractionId,
@Parameter(description = "The keys bindings must be complete, and they must correspond to the binding keys that were defined in the knowledge interaction.", required = true) @NotNull @Valid JsonNode recipientAndBindingSet,
@Suspended final AsyncResponse asyncResponse, @Context SecurityContext securityContext)
throws NotFoundException {
@Suspended final AsyncResponse asyncResponse, @Context SecurityContext securityContext) {

LOG.debug("scPostPost called for KB {} and KI {} - {}", knowledgeBaseId, knowledgeInteractionId,
recipientAndBindingSet);
Expand Down Expand Up @@ -334,6 +341,13 @@ public void scPostPost(
response.setMessageType("error");
response.setMessage(e.getMessage());
asyncResponse.resume(Response.status(Status.BAD_REQUEST).entity(response).build());
} catch (IllegalStateException e) {
// triggered when, for example, the SC has stopped before the KI is activated.
LOG.trace("{}", e);
var response = new ResponseMessage();
response.setMessageType("error");
response.setMessage(e.getMessage());
asyncResponse.resume(Response.status(Status.GONE).entity(response).build());
}
}
}
Expand Down
Loading