Example usage for io.vertx.core.json JsonArray size

List of usage examples for io.vertx.core.json JsonArray size

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray size.

Prototype

public int size() 

Source Link

Document

Get the number of values in this JSON array

Usage

From source file:org.entcore.common.events.impl.GenericEventStore.java

License:Open Source License

@Override
public void createAndStoreEvent(final String eventType, final String login) {
    String query = "MATCH (n:User {login : {login}}) " + "OPTIONAL MATCH n-[:IN]->(gp:ProfileGroup) "
            + "OPTIONAL MATCH n-[:IN]->()-[:DEPENDS]->(s:Structure) "
            + "OPTIONAL MATCH n-[:IN]->()-[:DEPENDS]->(c:Class) "
            + "OPTIONAL MATCH n-[:IN]->()-[:HAS_PROFILE]->(p:Profile) "
            + "RETURN distinct n.id as userId,  p.name as type, COLLECT(distinct gp.id) as profilGroupsIds, "
            + "COLLECT(distinct c.id) as classes, COLLECT(distinct s.id) as structures";
    Neo4j.getInstance().execute(query, new JsonObject().put("login", login),
            new Handler<Message<JsonObject>>() {
                @Override/*from  w ww  .  jav  a 2 s . c o  m*/
                public void handle(Message<JsonObject> event) {
                    JsonArray res = event.body().getJsonArray("result");
                    if ("ok".equals(event.body().getString("status")) && res.size() == 1) {
                        execute(UserUtils.sessionToUserInfos(res.getJsonObject(0)), eventType, null, null);
                    } else {
                        logger.error("Error : user " + login + " not found.");
                    }

                }
            });
}

From source file:org.entcore.common.http.BasicFilter.java

License:Open Source License

@Override
protected void validateClientScope(String clientId, String secret, final Handler<String> handler) {
    String query = "MATCH (n:Application {name: {clientId}, secret: {secret}, grantType: 'Basic'}) "
            + "RETURN n.scope as scope";
    JsonObject params = new JsonObject().put("clientId", clientId).put("secret", secret);
    Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() {
        @Override//from ww w  .j av  a  2  s . co  m
        public void handle(Message<JsonObject> event) {
            JsonArray res = event.body().getJsonArray("result");
            if ("ok".equals(event.body().getString("status")) && res != null && res.size() == 1) {
                handler.handle(Joiner.on(" ").join(res.getJsonObject(0).getJsonArray("scope")));
            } else {
                handler.handle(null);
            }
        }
    });
}

From source file:org.entcore.common.http.filter.AbstractActionFilter.java

License:Open Source License

private void authorizeWorkflowAction(JsonObject session, Binding binding, Handler<Boolean> handler) {
    JsonArray actions = session.getJsonArray("authorizedActions");
    if (binding != null && binding.getServiceMethod() != null && actions != null && actions.size() > 0) {
        for (Object a : actions) {
            JsonObject action = (JsonObject) a;
            if (binding.getServiceMethod().equals(action.getString("name"))) {
                handler.handle(true);//  w w w .j ava 2 s  .  co  m
                return;
            }
        }
    }
    if (session.getJsonObject("functions", new JsonObject()).containsKey("SUPER_ADMIN")) {
        handler.handle(true);
        return;
    }
    handler.handle(false);
}

From source file:org.entcore.common.http.filter.AdmlResourcesProvider.java

License:Open Source License

protected void validateQuery(final HttpServerRequest request, final Handler<Boolean> handler, String query,
        JsonObject params) {//from   w w  w  .j  a v a 2  s  .c  o  m
    request.pause();
    neo4j.execute(query, params, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> r) {
            request.resume();
            JsonArray res = r.body().getJsonArray("result");
            handler.handle("ok".equals(r.body().getString("status")) && res.size() == 1
                    && (res.getJsonObject(0)).getBoolean("exists", false));
        }
    });
}

From source file:org.entcore.common.http.filter.AdmlResourcesProvider.java

License:Open Source License

protected void validateQueries(final HttpServerRequest request, final Handler<Boolean> handler,
        StatementsBuilder statementsBuilder) {
    request.pause();//  w  w w. ja v  a2 s. c  om
    final JsonArray statements = statementsBuilder.build();
    neo4j.executeTransaction(statements, null, true, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> r) {
            request.resume();
            JsonArray res = r.body().getJsonArray("results");
            if (!"ok".equals(r.body().getString("status")) || res == null || res.size() != statements.size()) {
                handler.handle(false);
                return;
            }
            for (int i = 0; i < statements.size(); i++) {
                JsonArray j = res.getJsonArray(i);
                if (j.size() != 1 || !j.getJsonObject(0).getBoolean("exists", false)) {
                    handler.handle(false);
                    return;
                }
            }
            handler.handle(true);
        }
    });
}

From source file:org.entcore.common.http.filter.VisibleFilter.java

License:Open Source License

@Override
public void authorize(HttpServerRequest request, Binding binding, UserInfos user, Handler<Boolean> handler) {
    final String userId = request.params().get("userId");
    if (userId == null || userId.trim().isEmpty()) {
        handler.handle(false);/*from w  ww.  j  a  va 2 s  . c  om*/
        return;
    }
    neo4j.execute(query, new JsonObject().put("queryUserId", user.getUserId()).put("userId", userId), event -> {
        final JsonArray res = event.body().getJsonArray("result");
        handler.handle("ok".equals(event.body().getString("status")) && res != null && res.size() == 1
                && res.getJsonObject(0).getBoolean("exists", false));
    });
}

From source file:org.entcore.common.neo4j.Neo4j.java

License:Open Source License

public void init(Vertx vertx, JsonObject config) {
    this.eb = Server.getEventBus(vertx);
    JsonArray serverUris = config.getJsonArray("server-uris");
    String serverUri = config.getString("server-uri");
    if (serverUris == null && serverUri != null) {
        serverUris = new fr.wseduc.webutils.collections.JsonArray().add(serverUri);
    }//ww  w  .  j a  v a 2s. c o  m

    if (serverUris != null) {
        try {
            URI[] uris = new URI[serverUris.size()];
            for (int i = 0; i < serverUris.size(); i++) {
                uris[i] = new URI(serverUris.getString(i));
            }
            database = new Neo4jRest(uris, config.getBoolean("slave-readonly", false), vertx,
                    config.getLong("checkDelay", 3000l), config.getInteger("poolSize", 16),
                    config.getBoolean("keepAlive", true), config);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
    } else {
        log.error("Invalid Neo4j URI");
    }
}

From source file:org.entcore.common.neo4j.Neo4jRest.java

License:Open Source License

public Neo4jRest(URI[] uris, boolean ro, Vertx vertx, long checkDelay, int poolSize, boolean keepAlive,
        JsonObject neo4jConfig) {//from   w  w w.  j a  v  a2s  . co  m
    nodeManager = new Neo4jRestNodeClient(uris, vertx, checkDelay, poolSize, keepAlive);
    this.ro = ro;
    String path = uris[0].getPath();
    if (path != null && path.endsWith("/")) {
        this.basePath = path.substring(0, path.length() - 1);
    } else {
        this.basePath = path;
    }
    if (neo4jConfig != null) {
        JsonArray legacyIndexes = neo4jConfig.getJsonArray("legacy-indexes");
        if (legacyIndexes != null && legacyIndexes.size() > 0) {
            for (Object o : legacyIndexes) {
                if (!(o instanceof JsonObject))
                    continue;
                JsonObject j = (JsonObject) o;
                createIndex(j);
            }
        }
    }
}

From source file:org.entcore.common.neo4j.Neo4jRest.java

License:Open Source License

private JsonArray transformJson(JsonObject json) {
    final JsonArray columns = json.getJsonArray("columns");
    final JsonArray data = json.getJsonArray("data");
    final JsonArray out = new fr.wseduc.webutils.collections.JsonArray();

    if (data != null && columns != null) {
        for (Object r : data) {
            JsonArray row;
            if (r instanceof JsonArray) {
                row = (JsonArray) r;//from ww w. ja  va2s .c  o  m
            } else if (r instanceof JsonObject) {
                row = ((JsonObject) r).getJsonArray("row");
            } else {
                continue;
            }
            JsonObject outRow = new fr.wseduc.webutils.collections.JsonObject();
            out.add(outRow);
            for (int j = 0; j < row.size(); j++) {
                Object value = row.getValue(j);
                if (value == null) {
                    outRow.put(columns.getString(j), (String) null);
                } else if (value instanceof String) {
                    outRow.put(columns.getString(j), (String) value);
                } else if (value instanceof JsonArray) {
                    outRow.put(columns.getString(j), (JsonArray) value);
                } else if (value instanceof JsonObject) {
                    outRow.put(columns.getString(j), (JsonObject) value);
                } else if (value instanceof Boolean) {
                    outRow.put(columns.getString(j), (Boolean) value);
                } else if (value instanceof Number) {
                    outRow.put(columns.getString(j), (Number) value);
                } else {
                    outRow.put(columns.getString(j), value.toString());
                }
            }
        }
    }
    return out;
}

From source file:org.entcore.common.neo4j.Neo4jResult.java

License:Open Source License

public static Either<String, JsonObject> validUniqueResult(Message<JsonObject> res) {
    Either<String, JsonArray> r = validResult(res);
    if (r.isRight()) {
        JsonArray results = r.right().getValue();
        if (results == null || results.size() == 0) {
            return new Either.Right<>(new JsonObject());
        }//from www  .j  a v a  2s  .c  o  m
        if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) {
            return new Either.Right<>(results.getJsonObject(0));
        }
        return new Either.Left<>("non.unique.result");
    } else {
        return new Either.Left<>(r.left().getValue());
    }
}