use of io.openk9.entity.manager.model.payload.Request in project openk9 by smclab.
the class BasePluginDriver method invokeDataParser.
@Override
public Mono<Void> invokeDataParser(Datasource datasource, Date fromDate, Date toDate) {
String jsonConfig = datasource.getJsonConfig();
JsonNode jsonNode = getJsonFactory().fromJsonToJsonNode(jsonConfig);
ObjectNode objectNode = jsonNode.toObjectNode();
ObjectNode requestJson = getJsonFactory().createObjectNode();
objectNode.stream().filter(e -> _containsKey(e.getKey())).forEach(e -> requestJson.set(e.getKey(), e.getValue()));
requestJson.put("timestamp", fromDate.getTime());
requestJson.put("datasourceId", datasource.getDatasourceId());
Map<String, Object> headers = headersObject();
Publisher<byte[]> request = getHttpClient().request(method(), path(), requestJson.toString(), headers);
return Mono.from(request).then();
}
use of io.openk9.entity.manager.model.payload.Request in project openk9 by smclab.
the class BaseNerEnrichProcessor method process.
@Override
public Mono<ObjectNode> process(ObjectNode objectNode, DatasourceContext context, EnrichItem enrichItem, PluginDriverDTO pluginDriverName) {
return Mono.defer(() -> {
JsonNode datasourceConfiguration = _jsonFactory.fromJsonToJsonNode(enrichItem.getJsonConfig());
if (!datasourceConfiguration.isObject()) {
return Mono.error(new RuntimeException("jsonConfig must be an instance of ObjectNode " + datasourceConfiguration.toString()));
}
ObjectNode request = prepareRequestRawContent(objectNode, datasourceConfiguration.toObjectNode(), context, pluginDriverName);
return Mono.from(_httpClient.request(getMethod(), getPath(), request.toString(), getHeaders())).retry(5).map(_jsonFactory::fromJsonToJsonNode).map(JsonNode::toObjectNode).map(jsonNodes -> {
jsonNodes.put(Constants.TENANT_ID, context.getTenant().getTenantId());
jsonNodes.put(Constants.DATASOURCE_ID, context.getDatasource().getDatasourceId());
jsonNodes.put(Constants.CONTENT_ID, objectNode.get(Constants.CONTENT_ID));
jsonNodes.put(Constants.RAW_CONTENT, objectNode.get(Constants.RAW_CONTENT));
jsonNodes.put(Constants.INGESTION_ID, objectNode.get(Constants.INGESTION_ID));
return jsonNodes;
}).flatMap(this::_getEntityOrCreate).map(entities -> objectNode.set(entitiesField(), entities));
});
}
Aggregations