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.timeline.services.impl.DefaultTimelineMailerService.java

License:Open Source License

private void getRecipientsUsers(Date from, final Handler<JsonArray> handler) {
    final JsonObject aggregation = new JsonObject();
    JsonArray pipeline = new fr.wseduc.webutils.collections.JsonArray();
    aggregation.put("aggregate", "timeline").put("allowDiskUse", true).put("pipeline", pipeline);

    JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("date").greaterThanEquals(from));
    JsonObject grouper = new JsonObject(
            "{ \"_id\" : \"notifiedUsers\", \"recipients\" : {\"$addToSet\" : \"$recipients.userId\"}}");

    pipeline.add(new JsonObject().put("$match", matcher));
    pipeline.add(new JsonObject().put("$unwind", "$recipients"));
    pipeline.add(new JsonObject().put("$group", grouper));

    mongo.command(aggregation.toString(), new Handler<Message<JsonObject>>() {
        @Override// w w w . j  a  v  a  2 s . c  om
        public void handle(Message<JsonObject> event) {
            if ("error".equals(event.body().getString("status", "error"))) {
                handler.handle(new fr.wseduc.webutils.collections.JsonArray());
            } else {
                JsonArray r = event.body().getJsonObject("result", new JsonObject()).getJsonArray("result");
                if (r != null && r.size() > 0) {
                    handler.handle(r.getJsonObject(0).getJsonArray("recipients",
                            new fr.wseduc.webutils.collections.JsonArray()));
                } else {
                    handler.handle(new fr.wseduc.webutils.collections.JsonArray());
                }
            }
        }

    });
}

From source file:org.entcore.timeline.services.impl.DefaultTimelineMailerService.java

License:Open Source License

/**
 * Retrieves an aggregated list of notifications from mongodb for a single user.
 *
 *  Notifications are grouped by type & event-type.
 * @param userId : Userid/*from  www.  j  av  a 2  s .co  m*/
 * @param from : Starting date in the past
 * @param handler: Handles the notifications
 */
private void getAggregatedUserNotifications(String userId, Date from, final Handler<JsonArray> handler) {
    final JsonObject aggregation = new JsonObject();
    JsonArray pipeline = new fr.wseduc.webutils.collections.JsonArray();
    aggregation.put("aggregate", "timeline").put("allowDiskUse", true).put("pipeline", pipeline);

    JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("recipients")
            .elemMatch(QueryBuilder.start("userId").is(userId).get()).and("date").greaterThanEquals(from));
    JsonObject grouper = new JsonObject(
            "{ \"_id\" : { \"type\": \"$type\", \"event-type\": \"$event-type\"}, \"count\": { \"$sum\": 1 } }");
    JsonObject transformer = new JsonObject(
            "{ \"type\": \"$_id.type\", \"event-type\": \"$_id.event-type\", \"count\": 1, \"_id\": 0 }");

    pipeline.add(new JsonObject().put("$match", matcher));
    pipeline.add(new JsonObject().put("$group", grouper));
    pipeline.add(new JsonObject().put("$project", transformer));

    mongo.command(aggregation.toString(), new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if ("error".equals(event.body().getString("status", "error"))) {
                handler.handle(new fr.wseduc.webutils.collections.JsonArray());
            } else {
                handler.handle(event.body().getJsonObject("result", new JsonObject()).getJsonArray("result",
                        new fr.wseduc.webutils.collections.JsonArray()));
            }
        }

    });
}

From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java

License:Open Source License

@Override
public void handle(final ServerWebSocket ws) {
    ws.pause();//from  www .  j a  va2s  .c  om
    String sessionId = CookieHelper.getInstance().getSigned(SESSION_ID, ws);
    UserUtils.getSession(Server.getEventBus(vertx), sessionId, new Handler<JsonObject>() {
        public void handle(final JsonObject infos) {
            if (infos == null) {
                ws.reject();
                return;
            }
            final String id = ws.path().replaceFirst("/audio/", "");
            eb.send(AudioRecorderWorker.class.getSimpleName(),
                    new JsonObject().put("action", "open").put("id", id),
                    handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> m) {
                            if ("ok".equals(m.body().getString("status"))) {
                                ws.frameHandler(new Handler<WebSocketFrame>() {
                                    @Override
                                    public void handle(WebSocketFrame frame) {
                                        if (frame.isBinary()) {
                                            log.debug("frame handler");
                                            eb.send(AudioRecorderWorker.class.getSimpleName() + id,
                                                    frame.binaryData().getBytes(),
                                                    new DeliveryOptions().setSendTimeout(TIMEOUT),
                                                    new Handler<AsyncResult<Message<JsonObject>>>() {
                                                        @Override
                                                        public void handle(
                                                                AsyncResult<Message<JsonObject>> ar) {
                                                            if (ar.failed() || !"ok".equals(
                                                                    ar.result().body().getString("status"))) {
                                                                ws.writeTextMessage("audio.chunk.error");
                                                            }
                                                        }
                                                    });
                                        } else {
                                            final String command = frame.textData();
                                            if (command != null && command.startsWith("save-")) {
                                                save(id, command.substring(5), infos, ws);
                                            } else if ("cancel".equals(command)) {
                                                cancel(id, ws);
                                            } else if ("rawdata".equals(command)) {
                                                disableCompression(id, ws);
                                            }
                                        }
                                    }
                                });
                                ws.closeHandler(new Handler<Void>() {
                                    @Override
                                    public void handle(Void event) {
                                        cancel(id, null);
                                    }
                                });
                                ws.resume();
                            } else {
                                ws.writeTextMessage(m.body().getString("message"));
                            }
                        }
                    }));
        }
    });
}

From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java

License:Open Source License

private void save(String id, String name, JsonObject infos, final ServerWebSocket ws) {
    JsonObject message = new JsonObject().put("action", "save").put("id", id).put("session", infos);
    if (isNotEmpty(name)) {
        message.put("name", name);
    }/*  w  w  w  . j  a  va 2 s.  c om*/
    eb.send(AudioRecorderWorker.class.getSimpleName(), message,
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {

                @Override
                public void handle(Message<JsonObject> event) {
                    if ("ok".equals(event.body().getString("status"))) {
                        ws.writeTextMessage("ok");
                    } else {
                        ws.writeTextMessage(event.body().getString("message"));
                    }
                    ws.close();
                }
            }));
}

From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java

License:Open Source License

private void cancel(String id, final ServerWebSocket ws) {
    eb.send(AudioRecorderWorker.class.getSimpleName(), new JsonObject().put("action", "cancel").put("id", id),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {

                @Override/*w ww .  j  a  v a 2 s .  com*/
                public void handle(Message<JsonObject> event) {
                    if (ws != null) {
                        if ("ok".equals(event.body().getString("status"))) {
                            ws.writeTextMessage("ok");
                        } else {
                            ws.writeTextMessage(event.body().getString("message"));
                        }
                        ws.close();
                    }
                }
            }));
}

From source file:org.entcore.workspace.controllers.AudioRecorderHandler.java

License:Open Source License

private void disableCompression(String id, final ServerWebSocket ws) {
    eb.send(AudioRecorderWorker.class.getSimpleName(), new JsonObject().put("action", "rawdata").put("id", id),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {

                @Override//from w  w  w .  j a  v a2s.  co m
                public void handle(Message<JsonObject> event) {
                    if (ws != null) {
                        if ("ok".equals(event.body().getString("status"))) {
                            ws.writeTextMessage("ok");
                        } else {
                            ws.writeTextMessage(event.body().getString("message"));
                        }
                    }
                }
            }));
}

From source file:org.entcore.workspace.controllers.QuotaController.java

License:Open Source License

@BusAddress("activation.ack")
public void initQuota(final Message<JsonObject> message) {
    String userId = message.body().getString("userId");
    if (userId != null && !userId.trim().isEmpty()) {
        quotaService.init(userId);//  w w w . ja  v  a 2  s .c o  m
    }
}

From source file:org.entcore.workspace.controllers.QuotaController.java

License:Open Source License

@BusAddress("org.entcore.workspace.quota")
public void quotaEventBusHandler(final Message<JsonObject> message) {
    Handler<Either<String, JsonObject>> responseHandler = new Handler<Either<String, JsonObject>>() {
        @Override/*  www  . ja va 2 s  .c o  m*/
        public void handle(Either<String, JsonObject> res) {
            if (res.isRight()) {
                message.reply(res.right().getValue());
            } else {
                message.reply(new JsonObject().put("status", "error").put("message", res.left().getValue()));
            }
        }
    };

    String userId = message.body().getString("userId");

    switch (message.body().getString("action", "")) {
    case "getUserQuota":
        quotaService.quotaAndUsage(userId, responseHandler);
        break;
    case "updateUserQuota":
        long size = message.body().getLong("size");
        int threshold = message.body().getInteger("threshold");
        quotaService.incrementStorage(userId, size, threshold, responseHandler);
        break;
    default:
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.action"));
    }
}

From source file:org.entcore.workspace.dao.GenericDao.java

License:Open Source License

public void findById(String id, final Handler<JsonObject> handler) {
    mongo.findOne(collection, idMatcher(id), new Handler<Message<JsonObject>>() {
        @Override//from w  w w.  j  a  va2s  .  c  o m
        public void handle(Message<JsonObject> res) {
            handler.handle(res.body());
        }
    });
}

From source file:org.entcore.workspace.dao.GenericDao.java

License:Open Source License

public void findById(String id, JsonObject keys, final Handler<JsonObject> handler) {
    mongo.findOne(collection, idMatcher(id), keys, new Handler<Message<JsonObject>>() {
        @Override/*  w w  w.ja va  2  s.  c o  m*/
        public void handle(Message<JsonObject> res) {
            handler.handle(res.body());
        }
    });
}