List of usage examples for io.vertx.core.eventbus Message body
@CacheReturn T body();
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;/*w w w . j av a 2 s . 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.controllers.CredentialController.java
License:Open Source License
@BusAddress("cas") public void busEvents(Message<JsonObject> message) { String action = message.body().getString("action", ""); switch (action) { case "logout": credential.logout(message.body().getString("userId")); break;/*from w w w.j a v a 2 s. co m*/ default: message.reply(new JsonObject().put("status", "error").put("message", "invalid.action")); } }
From source file:org.entcore.cas.data.EntCoreDataHandler.java
License:Open Source License
private void getAuth(final Handler<AuthCas> handler, JsonObject query) { JsonObject keys = new JsonObject().put("_id", 0).put("id", 1).put("serviceTickets", 1).put("user", 1); mongoDb.findOne(COLLECTION, query, keys, new io.vertx.core.Handler<Message<JsonObject>>() { @Override/*from w ww . j av a 2s. c om*/ public void handle(Message<JsonObject> event) { JsonObject res = event.body().getJsonObject("result"); if ("ok".equals(event.body().getString("status")) && res != null) { handler.handle(deserialize(res)); } else { handler.handle(null); } } }); }
From source file:org.entcore.cas.data.EntCoreDataHandler.java
License:Open Source License
@Override public void persistAuth(AuthCas authCas, final Handler<Boolean> handler) { JsonObject query = new JsonObject().put("id", authCas.getId()); JsonObject doc = serialize(authCas); if (doc == null) { handler.handle(false);/*from w w w . j a va2 s . c om*/ return; } doc.put("updatedAt", MongoDb.now()); mongoDb.update(COLLECTION, query, doc, true, false, new io.vertx.core.Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { handler.handle("ok".equals(event.body().getString("status"))); } }); }
From source file:org.entcore.cas.services.DefaultRegisteredService.java
License:Open Source License
@Override public void getUser(final String userId, final String service, final Handler<User> userHandler) { JsonObject jo = new JsonObject(); jo.put("action", directoryAction).put("userId", userId); eb.send("directory", jo, handlerToAsyncHandler(new io.vertx.core.Handler<Message<JsonObject>>() { @Override//from w ww.j ava2s .com public void handle(Message<JsonObject> event) { JsonObject res = event.body().getJsonObject("result"); log.debug("res : " + res); if ("ok".equals(event.body().getString("status")) && res != null) { User user = new User(); prepareUser(user, userId, service, res); userHandler.handle(user); } else { userHandler.handle(null); } } })); }
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;// www . j a va2s . c o m } //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.aggregation.indicators.mongo.IndicatorMongoImpl.java
License:Open Source License
private void executeAggregationQuery(final IndicatorGroup group, final Handler<JsonObject> finalHandler) { //Filter by trace type + custom filters final MongoDBBuilder filteringQuery = (MongoDBBuilder) new MongoDBBuilder().put(TRACE_FIELD_TYPE) .is(indicatorKey);/* w w w . j a v a2 s .c om*/ for (IndicatorFilter filter : filters) { filter.filter(filteringQuery); } final JsonObject aggregation = new JsonObject(); JsonArray pipeline = new fr.wseduc.webutils.collections.JsonArray(); aggregation.put("aggregate", COLLECTIONS.events.name()).put("allowDiskUse", true).put("pipeline", pipeline); pipeline.add(new JsonObject().put("$match", MongoQueryBuilder.build(filteringQuery))); addUnwindPipeline(pipeline, group); JsonObject groupBy = new JsonObject().put("$group", new JsonObject().put("_id", getGroupByObject(new JsonObject(), group)).put("count", new JsonObject().put("$sum", 1))); pipeline.add(groupBy); //Customize the request if needed customizeGroupBy(groupBy); customizePipeline(pipeline); mongo.command(aggregation.toString(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { if ("ok".equals(message.body().getString("status")) && message.body().getJsonObject("result", new JsonObject()).getInteger("ok") == 1) { JsonArray result = message.body().getJsonObject("result").getJsonArray("result"); writeStats(result, group, finalHandler); } else { String groupstr = group == null ? "Global" : group.toString(); log.error("[Aggregation][Error]{" + writtenIndicatorKey + "} (" + groupstr + ") executeAggregationQuery : " + message.body().toString()); log.info(aggregation.toString()); finalHandler.handle(new JsonObject()); } } }); //Recurse if (group != null) for (IndicatorGroup child : group.getChildren()) { executeAggregationQuery(child, finalHandler); } }
From source file:org.entcore.common.appregistry.AppRegistryEventsHandler.java
License:Open Source License
@Override public void handle(Message<JsonObject> event) { String type = event.body().getString("type"); if (type != null) { switch (type) { case PROFILE_GROUP_ACTIONS_UPDATED: appRegistryEventsService.authorizedActionsUpdated(event.body().getJsonArray("groups")); break; case USER_GROUP_UPDATED: appRegistryEventsService.userGroupUpdated(event.body().getJsonArray("users"), event); break; case IMPORT_SUCCEEDED: appRegistryEventsService.importSucceeded(); break; }/* ww w . j a v a 2s . com*/ } }
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 www . j a v a 2s . c o 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); } } }); }
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//w w w . ja v 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."); } } }); }