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.blog.events.BlogSearchingEvents.java

License:Open Source License

@Override
public void searchResource(List<String> appFilters, String userId, JsonArray groupIds,
        final JsonArray searchWords, final Integer page, final Integer limit, final JsonArray columnsHeader,
        final String locale, final Handler<Either<String, JsonArray>> handler) {
    if (appFilters.contains(BlogSearchingEvents.class.getSimpleName())) {

        final List<String> groupIdsLst = groupIds.getList();
        final List<DBObject> groups = new ArrayList<DBObject>();
        groups.add(QueryBuilder.start("userId").is(userId).get());
        for (String gpId : groupIdsLst) {
            groups.add(QueryBuilder.start("groupId").is(gpId).get());
        }/*from  w w w.  j av a 2 s. c o  m*/

        final QueryBuilder rightsQuery = new QueryBuilder().or(
                QueryBuilder.start("visibility").is(VisibilityFilter.PUBLIC.name()).get(),
                QueryBuilder.start("visibility").is(VisibilityFilter.PROTECTED.name()).get(),
                QueryBuilder.start("visibility").is(VisibilityFilter.PROTECTED.name()).get(),
                QueryBuilder.start("author.userId").is(userId).get(),
                QueryBuilder.start("shared")
                        .elemMatch(new QueryBuilder().or(groups.toArray(new DBObject[groups.size()])).get())
                        .get());

        final JsonObject projection = new JsonObject();
        projection.put("_id", 1);
        //search all blogs of user
        mongo.find(Blog.BLOGS_COLLECTION, MongoQueryBuilder.build(rightsQuery), null, projection,
                new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        final Either<String, JsonArray> ei = validResults(event);
                        if (ei.isRight()) {
                            final JsonArray blogsResult = ei.right().getValue();

                            final Set<String> setIds = new HashSet<String>();
                            for (int i = 0; i < blogsResult.size(); i++) {
                                final JsonObject j = blogsResult.getJsonObject(i);
                                setIds.add(j.getString("_id"));
                            }

                            //search posts for the blogs found
                            searchPosts(page, limit, searchWords.getList(), setIds,
                                    new Handler<Either<String, JsonArray>>() {
                                        @Override
                                        public void handle(Either<String, JsonArray> event) {
                                            if (event.isRight()) {
                                                if (log.isDebugEnabled()) {
                                                    log.debug(
                                                            "[BlogSearchingEvents][searchResource] The resources searched by user are found");
                                                }
                                                final JsonArray res = formatSearchResult(
                                                        event.right().getValue(), columnsHeader,
                                                        searchWords.getList());
                                                handler.handle(new Right<String, JsonArray>(res));
                                            } else {
                                                handler.handle(new Either.Left<String, JsonArray>(
                                                        event.left().getValue()));
                                            }
                                        }
                                    });
                        } else {
                            handler.handle(new Either.Left<String, JsonArray>(ei.left().getValue()));
                        }
                    }
                });
    } else {
        handler.handle(new Right<String, JsonArray>(new JsonArray()));
    }
}

From source file:org.entcore.blog.events.BlogSearchingEvents.java

License:Open Source License

private JsonArray formatSearchResult(final JsonArray results, final JsonArray columnsHeader,
        final List<String> words) {
    final List<String> aHeader = columnsHeader.getList();
    final JsonArray traity = new JsonArray();

    for (int i = 0; i < results.size(); i++) {
        final JsonObject j = results.getJsonObject(i);
        final JsonObject jr = new JsonObject();
        if (j != null) {
            final String blogId = j.getJsonObject("blog").getString("$id");
            jr.put(aHeader.get(0), j.getString("title"));
            jr.put(aHeader.get(1), j.getString("content", ""));
            jr.put(aHeader.get(2), j.getJsonObject("modified"));
            jr.put(aHeader.get(3), j.getJsonObject("author").getString("username"));
            jr.put(aHeader.get(4), j.getJsonObject("author").getString("userId"));
            jr.put(aHeader.get(5), "/blog#/view/" + blogId + "/" + j.getString("_id"));
            traity.add(jr);//from  w  w w . j a  v a  2  s.  c  om
        }
    }
    return traity;
}

From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java

License:Open Source License

@Override
public void deleteUsers(JsonArray users) {
    if (users == null || users.size() == 0) {
        return;/*  www  .j a v  a 2s. co m*/
    }

    final String[] userIds = new String[users.size()];
    for (int i = 0; i < users.size(); i++) {
        JsonObject j = users.getJsonObject(i);
        userIds[i] = j.getString("id");
    }

    final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("shared.userId").in(userIds));

    MongoUpdateBuilder modifier = new MongoUpdateBuilder();
    modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("userId").in(userIds)));

    final String collection = DefaultBlogService.BLOG_COLLECTION;
    mongo.update(collection, criteria, modifier.build(), false, true, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if (!"ok".equals(event.body().getString("status"))) {
                log.error("Error deleting users shared in collection " + collection + " : "
                        + event.body().getString("message"));
            }

            final JsonObject criteria = MongoQueryBuilder
                    .build(QueryBuilder.start("author.userId").in(userIds));
            MongoUpdateBuilder modifier = new MongoUpdateBuilder();
            modifier.set("author.deleted", true);
            mongo.update(collection, criteria, modifier.build(), false, true,
                    new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> event) {
                            if (!"ok".equals(event.body().getString("status"))) {
                                log.error("Error deleting users shared in collection " + collection + " : "
                                        + event.body().getString("message"));
                            } else {
                                delete(collection);
                            }
                        }
                    });
        }
    });
}

From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java

License:Open Source License

private void delete(final String collection) {
    final JsonObject query = MongoQueryBuilder
            .build(QueryBuilder.start("shared.org-entcore-blog-controllers-BlogController|shareJson")
                    .notEquals(true).put("author.deleted").is(true));

    mongo.find(collection, query, null, new JsonObject().put("_id", 1), new Handler<Message<JsonObject>>() {
        @Override/*from   w w w . ja  v a2 s. com*/
        public void handle(Message<JsonObject> res) {
            String status = res.body().getString("status");
            JsonArray results = res.body().getJsonArray("results");
            if ("ok".equals(status) && results != null && results.size() > 0) {
                String[] blogIds = new String[results.size()];
                for (int i = 0; i < results.size(); i++) {
                    JsonObject j = results.getJsonObject(i);
                    blogIds[i] = j.getString("_id");
                }
                QueryBuilder q = QueryBuilder.start("blog.$id").in(blogIds);
                mongo.delete(DefaultPostService.POST_COLLECTION, MongoQueryBuilder.build(q),
                        new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> event) {
                                if (!"ok".equals(event.body().getString("status"))) {
                                    log.error("Error deleting posts : " + event.body().encode());
                                } else {
                                    log.info("Posts deleted : " + event.body().getInteger("number"));
                                }
                            }
                        });
                QueryBuilder query = QueryBuilder.start("_id").in(blogIds);
                mongo.delete(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if (!"ok".equals(event.body().getString("status"))) {
                            log.error("Error deleting blogs : " + event.body().encode());
                        } else {
                            log.info("Blogs deleted : " + event.body().getInteger("number"));
                        }
                    }
                });
            }
        }
    });
}

From source file:org.entcore.cas.controllers.ConfigurationController.java

License:Open Source License

public void loadPatterns() {
    eb.send("wse.app.registry.bus", new JsonObject().put("action", "list-cas-connectors"),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                @Override//from  w  w w . j a va  2s . c  om
                public void handle(Message<JsonObject> event) {
                    if ("ok".equals(event.body().getString("status"))) {
                        services.cleanPatterns();
                        JsonArray externalApps = event.body().getJsonArray("result");
                        for (Object o : externalApps) {
                            if (!(o instanceof JsonObject))
                                continue;
                            JsonObject j = (JsonObject) o;
                            String service = j.getString("service");
                            JsonArray patterns = j.getJsonArray("patterns");
                            if (service != null && !service.trim().isEmpty() && patterns != null
                                    && patterns.size() > 0) {
                                services.addPatterns(service, Arrays.copyOf(patterns.getList().toArray(),
                                        patterns.size(), String[].class));
                            }
                        }
                    } else {
                        log.error(event.body().getString("message"));
                    }
                }
            }));
}

From source file:org.entcore.cas.controllers.ConfigurationController.java

License:Open Source License

@BusAddress(value = "cas.configuration", local = false)
public void cas(Message<JsonObject> message) {
    switch (message.body().getString("action", "")) {
    case "list-services":
        message.reply(new JsonObject().put("status", "ok").put("result",
                services.getInfos(message.body().getString("accept-language", "fr"))));
        break;/*from  ww w  .  ja v  a2s  . c  om*/
    case "add-patterns":
        String service = message.body().getString("service");
        JsonArray patterns = message.body().getJsonArray("patterns");
        message.reply(new JsonObject().put("status",
                services.addPatterns(service,
                        Arrays.copyOf(patterns.getList().toArray(), patterns.size(), String[].class)) ? "ok"
                                : "error"));
        break;
    default:
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.action"));
    }
}

From source file:org.entcore.cas.services.EnglishAttackRegisteredService.java

License:Open Source License

@Override
protected void prepareUserCas20(User user, final String userId, String service, final JsonObject data,
        final Document doc, final List<Element> additionnalAttributes) {
    user.setUser(data.getString(principalAttributeName));

    if (log.isDebugEnabled()) {
        log.debug("START : prepareUserCas20 userId : " + userId);
    }//from   w  w  w  .  j  a  v a2  s .  c  om

    try {
        if (log.isDebugEnabled()) {
            log.debug("DATA : prepareUserCas20 data : " + data);
        }

        String query = "MATCH (u:`User` { id : {id}}) return u";
        JsonObject params = new JsonObject().put("id", userId);
        neo.execute(query, params, new Handler<Message<JsonObject>>() {
            @Override
            public void handle(Message<JsonObject> m) {

                // Uid
                if (data.containsKey("externalId")) {
                    additionnalAttributes.add(createTextElement(EA_ID, data.getString("externalId"), doc));
                }

                // Structures
                Element rootStructures = createElement(EA_STRUCTURE + "s", doc);
                for (Object o : data.getJsonArray("structures", new fr.wseduc.webutils.collections.JsonArray())
                        .getList()) {
                    if (o == null || !(o instanceof JsonObject))
                        continue;
                    JsonObject structure = (JsonObject) o;
                    Element rootStructure = createElement(EA_STRUCTURE, doc);

                    if (structure.containsKey("UAI")) {
                        rootStructure.appendChild(
                                createTextElement(EA_STRUCTURE_UAI, structure.getString("UAI"), doc));
                    }
                    if (structure.containsKey("name")) {
                        rootStructure.appendChild(
                                createTextElement(EA_STRUCTURE_NAME, structure.getString("name"), doc));
                    }
                    rootStructures.appendChild(rootStructure);
                }
                additionnalAttributes.add(rootStructures);

                // Profile
                switch (data.getString("type")) {
                case "Student":
                    additionnalAttributes.add(createTextElement(EA_PROFILES, "National_1", doc));
                    addStringArray(EA_CLASSE, "classes", "name", data, doc, additionnalAttributes,
                            new Mapper<String, String>() {
                                String map(String input) {
                                    Matcher m = classGroupPattern.matcher(input);
                                    if (m.matches() && m.groupCount() >= 1) {
                                        return m.group(1);
                                    }
                                    return input;
                                }
                            });
                    // Email
                    if (data.containsKey("email")) {
                        additionnalAttributes.add(createTextElement(EA_EMAIL, data.getString("email"), doc));
                    }
                    break;
                case "Teacher":
                    additionnalAttributes.add(createTextElement(EA_PROFILES, "National_3", doc));
                    addStringArray(EA_CLASSE, "classes", "name", data, doc, additionnalAttributes,
                            new Mapper<String, String>() {
                                String map(String input) {
                                    Matcher m = classGroupPattern.matcher(input);
                                    if (m.matches() && m.groupCount() >= 1) {
                                        return m.group(1);
                                    }
                                    return input;
                                }
                            });

                    //Discipline
                    Either<String, JsonObject> res = validUniqueResult(m);
                    if (res.isRight()) {
                        JsonObject j = res.right().getValue();
                        if (null != j.getJsonObject("u") && null != j.getJsonObject("u").getJsonObject("data")
                                && null != j.getJsonObject("u").getJsonObject("data")
                                        .getJsonArray("functions")) {
                            JsonArray jsonArrayFunctions = j.getJsonObject("u").getJsonObject("data")
                                    .getJsonArray("functions");
                            if (jsonArrayFunctions.size() > 0) {
                                Element rootDisciplines = createElement(EA_DISCIPLINE + "s", doc);
                                List<String> vTempListDiscipline = new ArrayList<>();
                                for (int i = 0; i < jsonArrayFunctions.size(); i++) {
                                    String fonction = jsonArrayFunctions.getString(i);
                                    String[] elements = fonction.split("\\$");
                                    if (elements.length > 1) {
                                        String discipline = elements[elements.length - 2] + "$"
                                                + elements[elements.length - 1];
                                        if (!vTempListDiscipline.contains(discipline)) {
                                            vTempListDiscipline.add(discipline);
                                            rootDisciplines.appendChild(
                                                    createTextElement(EA_DISCIPLINE, discipline, doc));
                                        }
                                    } else {
                                        log.error("Failed to get User functions userID, : " + userId
                                                + " fonction : " + fonction);
                                    }
                                }
                                additionnalAttributes.add(rootDisciplines);
                            }
                        } else {
                            log.error("Failed to get User functions userID, user empty : " + userId + " j : "
                                    + j);
                        }
                    } else {
                        log.error("Failed to get User functions userID : " + userId);
                    }
                    // Email
                    if (data.containsKey("emailAcademy")) {
                        additionnalAttributes
                                .add(createTextElement(EA_EMAIL, data.getString("emailAcademy"), doc));
                    } else if (data.containsKey("email")) {
                        additionnalAttributes.add(createTextElement(EA_EMAIL, data.getString("email"), doc));

                    }
                    break;
                case "Relative":
                    additionnalAttributes.add(createTextElement(EA_PROFILES, "National_2", doc));
                    break;
                case "Personnel":
                    additionnalAttributes.add(createTextElement(EA_PROFILES, "National_4", doc));
                    break;
                }

                // Lastname
                if (data.containsKey("lastName")) {
                    additionnalAttributes.add(createTextElement(EA_LASTNAME, data.getString("lastName"), doc));
                }

                // Firstname
                if (data.containsKey("firstName")) {
                    additionnalAttributes
                            .add(createTextElement(EA_FIRSTNAME, data.getString("firstName"), doc));
                }
            }
        });

    } catch (Exception e) {
        log.error("Failed to transform User for EnglishAttack", e);
    }

    if (log.isDebugEnabled()) {
        log.debug("START : prepareUserCas20 userId : " + userId);
    }
}

From source file:org.entcore.common.aggregation.indicators.mongo.IndicatorMongoImpl.java

License:Open Source License

private void writeStats(JsonArray results, final IndicatorGroup group, final Handler<JsonObject> callBack) {

    //If no documents found, write nothing
    if (results.size() == 0) {
        callBack.handle(new JsonObject());
        return;//w  w  w. j ava  2s .c om
    }

    //Document date
    Date writeDate = this.writeDate;

    final MongoDBBuilder criteriaQuery = new MongoDBBuilder();

    //Synchronization handler
    final AtomicInteger countDown = new AtomicInteger(results.size());
    Handler<Message<JsonObject>> synchroHandler = new Handler<Message<JsonObject>>() {
        public void handle(Message<JsonObject> message) {
            if (!"ok".equals(message.body().getString("status"))) {
                String groupstr = group == null ? "Global" : group.toString();
                log.error("[Aggregation][Error]{" + writtenIndicatorKey + "} (" + groupstr + ") writeStats : "
                        + message.body().toString());
                //log.info(criteriaQuery.toString());
            }

            if (countDown.decrementAndGet() == 0) {
                callBack.handle(new JsonObject());
            }
        }
    };
    //For each aggregated result
    for (Object obj : results) {
        JsonObject result = (JsonObject) obj;

        if (group == null) {
            //When not using groups, set groupedBy specifically to not exists
            criteriaQuery.put(STATS_FIELD_DATE).is(MongoDb.formatDate(writeDate)).and(STATS_FIELD_GROUPBY)
                    .exists(false);
        } else {
            //Adding date & group by to the criterias.
            criteriaQuery.put(STATS_FIELD_DATE).is(MongoDb.formatDate(writeDate)).and(STATS_FIELD_GROUPBY)
                    .is(group.toString());

            //Adding the group ids values
            IndicatorGroup g = group;
            while (g != null) {
                criteriaQuery.and(g.getKey() + "_id").is(result.getJsonObject("_id").getString(g.getKey()));
                g = g.getParent();
            }
        }

        //Perform write action
        writeAction(criteriaQuery, result.getInteger("count"), synchroHandler);
    }
}

From source file:org.entcore.common.elasticsearch.ElasticSearch.java

License:Open Source License

public void init(Vertx vertx, JsonObject config) {
    this.vertx = 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);
    }/*from   ww w .ja v a 2 s.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));
            }
            init(uris, vertx, config.getInteger("poolSize", 16), config.getBoolean("keepAlive", true), config);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
    } else {
        log.error("Invalid ElasticSearch URI");
    }
}

From source file:org.entcore.common.email.SmtpSender.java

License:Open Source License

@Override
public void hardBounces(Date startDate, Date endDate, final Handler<Either<String, List<Bounce>>> handler) {
    final JsonObject query = new JsonObject().put("date",
            new JsonObject().put("$gte", new JsonObject().put("$date", removeTime(startDate).getTime()))
                    .put("$lt", new JsonObject().put("$date", removeTime(endDate).getTime())));
    MongoDb.getInstance().find("bounces", query, new Handler<Message<JsonObject>>() {
        @Override//from  w  w  w.  j a v  a  2 s .  co  m
        public void handle(Message<JsonObject> event) {
            try {
                if ("ok".equals(event.body().getString("status"))) {
                    JsonArray l = event.body().getJsonArray("results");
                    if (l == null || l.size() == 0) {
                        handler.handle(new Either.Right<String, List<Bounce>>(Collections.<Bounce>emptyList()));
                        return;
                    }
                    List<Bounce> bounces = mapper.readValue(l.encode(), new TypeReference<List<Bounce>>() {
                    });
                    handler.handle(new Either.Right<String, List<Bounce>>(bounces));
                } else {
                    handler.handle(new Either.Left<String, List<Bounce>>(event.body().getString("message")));
                }
            } catch (RuntimeException | IOException e) {
                handler.handle(new Either.Left<String, List<Bounce>>(e.getMessage()));
                log.error(e.getMessage(), e);
            }
        }
    });
}