List of usage examples for io.vertx.core.json JsonArray size
public int size()
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); } } }); }