Example usage for io.vertx.core.eventbus Message body

List of usage examples for io.vertx.core.eventbus Message body

Introduction

In this page you can find the example usage for io.vertx.core.eventbus Message body.

Prototype

@CacheReturn
T body();

Source Link

Document

The body of the message.

Usage

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.");
                    }

                }
            });
}