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.feeder.utils.Report.java

License:Open Source License

public void sendEmails(final Vertx vertx, final JsonObject config, String source) {
    final JsonArray sendReport = config.getJsonArray("sendReport");
    if (sendReport == null) {
        //log.error("Cannot send reports because of empty config: " + sendReport);
        return;/*from   www. ja  v  a 2  s .  c om*/
    }
    int count = sendReport.size();
    EmailFactory emailFactory = new EmailFactory(vertx, config);
    for (Object o : sendReport) {
        JsonObject currentSendReport = (JsonObject) o;
        if (currentSendReport.getJsonArray("to") == null //
                || currentSendReport.getJsonArray("to").size() == 0 //
                || currentSendReport.getJsonArray("sources") == null//
                || !currentSendReport.getJsonArray("sources").contains(source)) {
            // log.error("Cannot send report because of missing infos: " + currentSendReport);
            continue;
        }
        if (count == 1) {
            this.countDiff(Optional.empty(), source, countEvent -> {
                if (countEvent != null) {
                    this.emailReport(vertx, emailFactory, currentSendReport, countEvent);
                }
            });
        } else {
            String prefixAcademy = currentSendReport.getString("academyPrefix");
            this.countDiff(Optional.ofNullable(prefixAcademy), source, countEvent -> {
                if (countEvent != null) {
                    this.emailReport(vertx, emailFactory, currentSendReport, countEvent);
                }
            });
        }
    }
}

From source file:org.entcore.feeder.utils.Validator.java

License:Open Source License

private String[] getParameters(JsonObject object, JsonObject j) {
    String[] v = null;//  www. ja  v a2  s. c o m
    JsonArray args = j.getJsonArray("args");
    if (args != null && args.size() > 0) {
        v = new String[args.size()];
        for (int i = 0; i < args.size(); i++) {
            v[i] = object.getString(args.getString(i));
        }
    }
    return v;
}

From source file:org.entcore.feeder.utils.Validator.java

License:Open Source License

private String getParameter(JsonObject object, JsonObject j) {
    String v = null;//from  w  w w . ja  va  2s  . c om
    JsonArray args = j.getJsonArray("args");
    if (args != null && args.size() == 1) {
        v = object.getString(args.getString(0));
    }
    return v;
}

From source file:org.entcore.feeder.utils.Validator.java

License:Open Source License

protected static void initLogins(Neo4j neo4j, final long startInit, final boolean remove) {
    String query = "MATCH (u:User) RETURN COLLECT(DISTINCT u.login) as logins, COLLECT(DISTINCT u.loginAlias) as loginAliases";
    neo4j.execute(query, new JsonObject(), new Handler<Message<JsonObject>>() {
        @Override/*from   w  w  w  . ja va 2s  . c om*/
        public void handle(Message<JsonObject> message) {
            JsonArray r = message.body().getJsonArray("result");
            if ("ok".equals(message.body().getString("status")) && r != null && r.size() == 1) {
                JsonArray l = (r.getJsonObject(0)).getJsonArray("logins");
                JsonArray aliases = (r.getJsonObject(0)).getJsonArray("loginAliases");

                for (Object alias : aliases) {
                    l.add(alias);
                }

                if (l != null) {
                    final Set<Object> tmp = new HashSet<>(l.getList());
                    if (remove) {
                        for (Object key : logins.keySet()) {
                            if (!tmp.contains(key)) {
                                logins.remove(key);
                            } else {
                                tmp.remove(key);
                            }
                        }
                        putLogin(tmp);
                    } else {
                        putLogin(tmp);
                    }
                }
            }
        }

        protected void putLogin(Set<Object> tmp) {
            for (Object o : tmp) {
                logins.putIfAbsent(o, "");
            }
            log.info("Init delay : " + (System.currentTimeMillis() - startInit));
        }
    });
}

From source file:org.entcore.infra.cron.HardBounceTask.java

License:Open Source License

@Override
public void handle(Long event) {
    log.info("Start hard bounce task.");
    log.debug(emailSender.getClass().getName());
    Calendar c = Calendar.getInstance();
    c.add(Calendar.DATE, relativeDay);
    emailSender.hardBounces(c.getTime(), new Handler<Either<String, List<Bounce>>>() {
        @Override/*  w  ww .j ava  2  s. c  o m*/
        public void handle(Either<String, List<Bounce>> r) {
            if (r.isRight()) {
                Set<String> emails = new HashSet<>();
                for (Bounce b : r.right().getValue()) {
                    if (Utils.isNotEmpty(b.getEmail())) {
                        if (emails.add(b.getEmail())) {
                            invalidEmails.put(b.getEmail(), "", new Handler<AsyncResult<Void>>() {
                                @Override
                                public void handle(AsyncResult<Void> event) {
                                    if (event.failed()) {
                                        log.error("Error adding invalid email in map.", event.cause());
                                    }
                                }
                            });
                        }
                    }
                }
                if (emails.isEmpty()) {
                    return;
                }

                JsonObject q = new JsonObject().put("type", PLATFORM_ITEM_TYPE);
                JsonObject modifier = new JsonObject().put("$addToSet",
                        new JsonObject().put("invalid-emails", new JsonObject().put("$each",
                                new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(emails)))));
                MongoDb.getInstance().update(PLATEFORM_COLLECTION, q, modifier, true, false);

                String query = "MATCH (u:User) WHERE u.email IN {emails} REMOVE u.email RETURN collect(distinct u.id) as ids";
                JsonObject params = new JsonObject().put("emails",
                        new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(emails)));
                Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if ("ok".equals(event.body().getString("status"))) {
                            JsonArray res = event.body().getJsonArray("result");
                            if (res != null && res.size() == 1 && res.getJsonObject(0) != null) {
                                notifyOnTimeline(res.getJsonObject(0).getJsonArray("ids"));
                            }
                        } else {
                            log.error(event.body().getString("message"));
                        }
                    }
                });
            } else {
                log.error(r.left().getValue());
            }
        }
    });
}

From source file:org.entcore.portal.controllers.PortalController.java

License:Open Source License

@Get("/theme")
@SecuredAction(value = "portal", type = ActionType.AUTHENTICATED)
public void getTheme(final HttpServerRequest request) {
    final String theme_attr = THEME_ATTRIBUTE + getHost(request);
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override//from w  w  w .  j a  va  2s.c om
        public void handle(final UserInfos user) {
            if (user != null) {
                Object t = user.getAttribute(theme_attr);
                if (t != null) {
                    renderJson(request, new JsonObject(t.toString()));
                    return;
                }
                JsonObject urls = config.getJsonObject("urls", new JsonObject());
                final JsonObject theme = new JsonObject().put("template", "/public/template/portal.html")
                        .put("logoutCallback", getLogoutCallback(request, urls));
                String query = "MATCH (n:User)-[:USERBOOK]->u " + "WHERE n.id = {id} " + "RETURN u.theme"
                        + getSkinFromConditions(request).replaceAll("\\W+", "") + " as theme";
                Map<String, Object> params = new HashMap<>();
                params.put("id", user.getUserId());
                Neo4j.getInstance().execute(query, params, new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if ("ok".equals(event.body().getString("status"))) {
                            JsonArray result = event.body().getJsonArray("result");
                            String userTheme = (result != null && result.size() == 1)
                                    ? result.getJsonObject(0).getString("theme")
                                    : null;
                            List<String> t = themes.get(getSkinFromConditions(request));
                            if (userTheme != null && t != null && t.contains(userTheme)) {
                                theme.put("skin", getThemePrefix(request) + "/skins/" + userTheme + "/");
                            } else {
                                theme.put("skin", getThemePrefix(request) + "/skins/default/");
                            }
                        } else {
                            theme.put("skin", getThemePrefix(request) + "/skins/default/");
                        }
                        renderJson(request, theme);
                        UserUtils.addSessionAttribute(eb, user.getUserId(), theme_attr, theme.encode(), null);
                    }
                });
            } else {
                unauthorized(request);
            }
        }
    });
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@Post("/role")
@SecuredAction(value = "", type = ActionType.RESOURCE)
public void createRole(final HttpServerRequest request) {
    bodyToJson(request, new Handler<JsonObject>() {
        @Override/*ww w . jav  a2 s  . c  om*/
        public void handle(JsonObject body) {
            final String roleName = body.getString("role");
            final JsonArray actions = body.getJsonArray("actions");
            if (actions != null && roleName != null && actions.size() > 0 && !roleName.trim().isEmpty()) {
                final JsonObject role = new JsonObject().put("name", roleName);
                String structureId = request.params().get("structureId");
                appRegistryService.createRole(structureId, role, actions,
                        notEmptyResponseHandler(request, 201, 409));
            } else {
                badRequest(request, "invalid.parameters");
            }
        }
    });
}

From source file:org.entcore.registry.controllers.WidgetController.java

License:Open Source License

@BusAddress("wse.app.registry.widgets")
public void collectWidgets(final Message<JsonObject> message) {
    final JsonArray widgets = message.body().getJsonArray("widgets",
            new fr.wseduc.webutils.collections.JsonArray());
    if (widgets.size() == 0 && message.body().containsKey("widget")) {
        widgets.add(message.body().getJsonObject("widget"));
    } else if (widgets.size() == 0) {
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.parameters"));
        return;//from w w  w .ja  v  a  2 s  . co  m
    }

    final AtomicInteger countdown = new AtomicInteger(widgets.size());
    final JsonObject reply = new JsonObject().put("status", "ok").put("errors",
            new fr.wseduc.webutils.collections.JsonArray());

    final Handler<JsonObject> replyHandler = new Handler<JsonObject>() {
        public void handle(JsonObject res) {
            if ("error".equals(res.getString("status"))) {
                reply.put("status", "error");
                reply.getJsonArray("errors").add(reply.getString("message"));
            }
            if (countdown.decrementAndGet() == 0) {
                message.reply(reply);
            }
        }
    };

    for (Object widgetObj : widgets) {
        registerWidget((JsonObject) widgetObj, replyHandler);
    }
}

From source file:org.entcore.registry.filters.AbstractFilter.java

License:Open Source License

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

From source file:org.entcore.registry.filters.LinkRoleGroupFilter.java

License:Open Source License

@Override
public void authorize(final HttpServerRequest resourceRequest, Binding binding, UserInfos user,
        final Handler<Boolean> handler) {
    Map<String, UserInfos.Function> functions = user.getFunctions();

    if (functions == null || functions.isEmpty()) {
        handler.handle(false);//from w w w. j ava2s.  co m
        return;
    }
    if (functions.containsKey(DefaultFunctions.SUPER_ADMIN)) {
        handler.handle(true);
        return;
    }
    final UserInfos.Function adminLocal = functions.get(DefaultFunctions.ADMIN_LOCAL);
    if (adminLocal == null || adminLocal.getScope() == null) {
        handler.handle(false);
        return;
    }

    bodyToJson(resourceRequest, new Handler<JsonObject>() {
        @Override
        public void handle(JsonObject body) {
            final JsonArray roleIds = body.getJsonArray("roleIds");
            final String groupId = body.getString("groupId");
            JsonObject params = new JsonObject();
            params.put("structures", new fr.wseduc.webutils.collections.JsonArray(adminLocal.getScope()));
            if (roleIds != null && groupId != null && roleIds.size() > 0 && !groupId.trim().isEmpty()) {
                String query = "MATCH (s:Structure)<-[:BELONGS*0..1]-()<-[:DEPENDS]-(:Group {id : {groupId}}), (r:Role) "
                        + "WHERE s.id IN {structures} AND r.id IN {roles} AND (NOT(HAS(r.structureId)) OR r.structureId IN {structures}) "
                        + "RETURN count(distinct r) = {nb} as exists ";
                params.put("groupId", groupId);
                params.put("roles", roleIds);
                params.put("nb", roleIds.size());
                check(resourceRequest, query, params, handler);
            } else {
                handler.handle(false);
            }
        }
    });
}