use of io.openk9.json.api.ArrayNode in project openk9 by smclab.
the class ApplicationPluginDriver method invokeDataParser.
@Override
public Publisher<Void> invokeDataParser(Datasource datasource, Date fromDate, Date toDate) {
JsonNode jsonNode = _jsonFactory.fromJsonToJsonNode(datasource.getJsonConfig());
if (jsonNode.isArray()) {
ArrayNode arrayJson = jsonNode.toArrayNode();
for (int i = 0; i < arrayJson.size(); i++) {
JsonNode node = arrayJson.get(i);
if (node.hasNonNull("title")) {
node = node.toObjectNode().set("applicationName", node.get("title"));
}
_ingestionLogicSender.send(IngestionPayload.builder().ingestionId(UUID.randomUUID().toString()).datasourceId(datasource.getDatasourceId()).rawContent(node.toString()).contentId(Integer.toString(i)).tenantId(datasource.getTenantId()).datasourcePayload(_jsonFactory.createObjectNode().set(getName(), node.toObjectNode()).toMap()).parsingDate(toDate.getTime()).documentTypes(new String[] { getName() }).build());
}
}
return Mono.empty();
}
use of io.openk9.json.api.ArrayNode in project openk9 by smclab.
the class JsEnrichProcessor method prepareRequestRawContent.
protected ObjectNode prepareRequestRawContent(ObjectNode objectNode, ObjectNode datasourceConfiguration, DatasourceContext context, PluginDriverDTO pluginDriverDTO) {
JsonNode rawContentNode = objectNode.get(Constants.RAW_CONTENT);
JsonNode codeNode = datasourceConfiguration.get(Constants.CODE);
ObjectNode request = _jsonFactory.createObjectNode();
request.put(Constants.CODE, codeNode);
request.put(Constants.CONTENT, rawContentNode);
JsonNode typeNode = objectNode.get(Constants.TYPE);
ObjectNode datasourcePayload = _jsonFactory.createObjectNode();
if (typeNode != null && typeNode.isArray()) {
ArrayNode types = typeNode.toArrayNode();
for (JsonNode typeJsonNode : types) {
String type = typeJsonNode.asText();
datasourcePayload.put(type, objectNode.get(type));
}
}
request.put(Constants.DATASOURCE_PAYLOAD, datasourcePayload);
request.put(Constants.TENANT_ID, context.getTenant().getTenantId());
request.put(Constants.DATASOURCE_ID, context.getDatasource().getDatasourceId());
request.put(Constants.CONTENT_ID, objectNode.get(Constants.CONTENT_ID));
return request;
}
use of io.openk9.json.api.ArrayNode in project openk9 by smclab.
the class BaseNerEnrichProcessor method _getEntityOrCreate.
private Mono<JsonNode> _getEntityOrCreate(ObjectNode jsonNode) {
return _entityManagerClient.getOrAddEntities(_jsonFactory.fromJsonNode(jsonNode, Request.class)).map(httpResponse -> {
List<Response> responseList = httpResponse.getResponse();
JsonNode entitiesJsonNode = jsonNode.get(entitiesField());
ArrayNode entitiesArrayNode = entitiesJsonNode.toArrayNode();
ArrayNode arrayNode = _jsonFactory.createArrayNode();
for (JsonNode node : entitiesArrayNode) {
Optional<Response> responseOptional = responseList.stream().filter(response -> node.get("tmpId").asLong() == response.getTmpId()).findFirst();
if (responseOptional.isPresent()) {
Entity entity = responseOptional.get().getEntity();
ObjectNode result = _jsonFactory.createObjectNode();
result.put("entityType", entity.getType());
result.put("id", entity.getId());
result.put("context", node.get("context"));
arrayNode.add(result);
}
}
return arrayNode;
});
}
Aggregations