use of io.openk9.entity.manager.cache.model.Entity in project openk9 by smclab.
the class EntityGraphRepositoryImpl method addEntities.
@Override
public Flux<Entity> addEntities(List<Entity> entities) {
PatternElement[] nodes = IntStream.range(0, entities.size()).mapToObj(i -> {
Entity entity = entities.get(i);
return Cypher.node(entity.getType()).named(RANDOM_NAME[i]).withProperties(Constants.ENTITY_NAME_FIELD, literalOf(entity.getName()), Constants.ENTITY_TENANT_ID_FIELD, literalOf(entity.getTenantId()));
}).toArray(PatternElement[]::new);
Statement statement = Cypher.create(nodes).returning(Arrays.stream(nodes).map(patternElement -> ((Node) patternElement)).toArray(Node[]::new)).build();
return Flux.from(_graphClient.write(statement)).concatMap(record -> _recordToToListEntity(Mono.just(record)));
}
use of io.openk9.entity.manager.cache.model.Entity 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