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.common.share.impl.MongoDbShareService.java

License:Open Source License

private void share(String resourceId, final String groupShareId, final List<String> actions, boolean isGroup,
        final Handler<Either<String, JsonObject>> handler) {
    final String shareIdAttr = isGroup ? "groupId" : "userId";
    QueryBuilder query = QueryBuilder.start("_id").is(resourceId);
    JsonObject keys = new JsonObject().put("shared", 1);
    final JsonObject q = MongoQueryBuilder.build(query);
    mongo.findOne(collection, q, keys, new Handler<Message<JsonObject>>() {
        @Override/*from  www .  j a  v a  2s. com*/
        public void handle(Message<JsonObject> event) {
            if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result") != null) {
                JsonArray actual = event.body().getJsonObject("result").getJsonArray("shared",
                        new fr.wseduc.webutils.collections.JsonArray());
                boolean exist = false;
                for (int i = 0; i < actual.size(); i++) {
                    JsonObject s = actual.getJsonObject(i);
                    String id = s.getString(shareIdAttr);
                    if (groupShareId.equals(id)) {
                        for (String action : actions) {
                            s.put(action, true);
                        }
                        if (groupedActions != null) {
                            for (Map.Entry<String, List<String>> ga : groupedActions.entrySet()) {
                                if (actions.containsAll(ga.getValue())) {
                                    s.put(ga.getKey(), true);
                                }
                            }
                        }
                        exist = true;
                        break;
                    }
                }
                final AtomicBoolean notifyTimeline = new AtomicBoolean(false);
                if (!exist) {
                    JsonObject t = new JsonObject().put(shareIdAttr, groupShareId);
                    actual.add(t);
                    for (String action : actions) {
                        t.put(action, true);
                    }
                    if (groupedActions != null) {
                        for (Map.Entry<String, List<String>> ga : groupedActions.entrySet()) {
                            if (actions.containsAll(ga.getValue())) {
                                t.put(ga.getKey(), true);
                            }
                        }
                    }
                    notifyTimeline.set(true);
                }
                MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().set("shared", actual);
                mongo.update(collection, q, updateQuery.build(), new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> res) {
                        if (notifyTimeline.get()) {
                            JsonObject notify = new JsonObject();
                            notify.put(shareIdAttr, groupShareId);
                            res.body().put("notify-timeline", notify);
                        }
                        handler.handle(Utils.validResult(res));
                    }
                });
            } else {
                handler.handle(new Either.Left<String, JsonObject>("Resource not found."));
            }
        }
    });
}

From source file:org.entcore.common.share.impl.MongoDbShareService.java

License:Open Source License

private void removeShare(String resourceId, final String shareId, List<String> removeActions, boolean isGroup,
        final Handler<Either<String, JsonObject>> handler) {
    final String shareIdAttr = isGroup ? "groupId" : "userId";
    final List<String> actions = findRemoveActions(removeActions);
    QueryBuilder query = QueryBuilder.start("_id").is(resourceId);
    JsonObject keys = new JsonObject().put("shared", 1);
    final JsonObject q = MongoQueryBuilder.build(query);
    mongo.findOne(collection, q, keys, new Handler<Message<JsonObject>>() {
        @Override/*  ww  w.j  a  v a 2 s  .com*/
        public void handle(Message<JsonObject> event) {
            if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result") != null) {
                JsonArray actual = event.body().getJsonObject("result").getJsonArray("shared",
                        new fr.wseduc.webutils.collections.JsonArray());
                JsonArray shared = new fr.wseduc.webutils.collections.JsonArray();
                for (int i = 0; i < actual.size(); i++) {
                    JsonObject s = actual.getJsonObject(i);
                    String id = s.getString(shareIdAttr);
                    if (shareId.equals(id)) {
                        if (actions != null) {
                            for (String action : actions) {
                                s.remove(action);
                            }
                            if (s.size() > 1) {
                                shared.add(s);
                            }
                        }
                    } else {
                        shared.add(s);
                    }
                }
                MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().set("shared", shared);
                mongo.update(collection, q, updateQuery.build(), new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> res) {
                        handler.handle(Utils.validResult(res));
                    }
                });
            } else {
                handler.handle(new Either.Left<String, JsonObject>("Resource not found."));
            }
        }
    });
}

From source file:org.entcore.common.share.impl.SqlShareService.java

License:Open Source License

@Override
public void shareInfos(final String userId, String resourceId, final String acceptLanguage, final String search,
        final Handler<Either<String, JsonObject>> handler) {
    if (userId == null || userId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid userId."));
        return;/* www.  j  a v a 2  s  .c o m*/
    }
    if (resourceId == null || resourceId.trim().isEmpty()) {
        handler.handle(new Either.Left<String, JsonObject>("Invalid resourceId."));
        return;
    }
    final JsonArray actions = getResoureActions(securedActions);
    String query = "SELECT s.member_id, s.action, m.group_id FROM " + shareTable + " AS s " + "JOIN " + schema
            + "members AS m ON s.member_id = m.id WHERE resource_id = ?";
    sql.prepared(query, new fr.wseduc.webutils.collections.JsonArray().add(Sql.parseId(resourceId)),
            new Handler<Message<JsonObject>>() {
                @Override
                public void handle(Message<JsonObject> message) {
                    if ("ok".equals(message.body().getString("status"))) {
                        JsonArray r = message.body().getJsonArray("results");
                        JsonObject groupCheckedActions = new JsonObject();
                        JsonObject userCheckedActions = new JsonObject();
                        for (Object o : r) {
                            if (!(o instanceof JsonArray))
                                continue;
                            JsonArray row = (JsonArray) o;
                            final String memberId = row.getString(0);
                            if (memberId == null || memberId.equals(userId))
                                continue;
                            final JsonObject checkedActions = (row.getValue(2) != null) ? groupCheckedActions
                                    : userCheckedActions;
                            JsonArray m = checkedActions.getJsonArray(memberId);
                            if (m == null) {
                                m = new fr.wseduc.webutils.collections.JsonArray();
                                checkedActions.put(memberId, m);
                            }
                            m.add(row.getValue(1));
                        }
                        getShareInfos(userId, actions, groupCheckedActions, userCheckedActions, acceptLanguage,
                                search, new Handler<JsonObject>() {
                                    @Override
                                    public void handle(JsonObject event) {
                                        if (event != null && event.size() == 3) {
                                            handler.handle(new Either.Right<String, JsonObject>(event));
                                        } else {
                                            handler.handle(new Either.Left<String, JsonObject>(
                                                    "Error finding shared resource."));
                                        }
                                    }
                                });
                    }
                }
            });
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Long countResult(Message<JsonObject> res) {
    if ("ok".equals(res.body().getString("status"))) {
        JsonArray values = res.body().getJsonArray("results");
        if (values != null && values.size() == 1) {
            JsonArray row = values.getJsonArray(0);
            if (row != null && row.size() == 1) {
                return row.getLong(0);
            }/*  w ww. j av  a  2  s  .  c  o  m*/
        }
    }
    return null;
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Either<String, JsonArray> validResult(int idx, Message<JsonObject> res) {
    if ("ok".equals(res.body().getString("status"))) {
        JsonArray a = res.body().getJsonArray("results");
        if (a != null && idx < a.size()) {
            return jsonToEither(a.getJsonObject(idx).put("jsonb_fields",
                    res.body().getJsonArray("jsonb_fields", new fr.wseduc.webutils.collections.JsonArray())));
        } else {//from   w w  w  . j a v  a2  s . c  om
            return new Either.Left<>("missing.result");
        }
    } else {
        return new Either.Left<>(res.body().getString("message", ""));
    }
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Either<String, JsonArray> validResults(Message<JsonObject> res) {
    if ("ok".equals(res.body().getString("status"))) {
        JsonArray a = res.body().getJsonArray("results");
        JsonArray r = new fr.wseduc.webutils.collections.JsonArray();
        for (Object o : a) {
            if (!(o instanceof JsonObject))
                continue;
            r.add(transform((JsonObject) o));
        }/*ww w  . j  a  v  a  2  s .c  o  m*/
        return new Either.Right<>(r);
    } else {
        return new Either.Left<>(res.body().getString("message", ""));
    }
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Either<String, JsonArray> validResult(Message<JsonObject> res) {
    return jsonToEither(res.body());
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Either<String, JsonObject> validRowsResult(Message<JsonObject> res) {
    JsonObject body = res.body();
    return validRows(body);
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Either<String, JsonObject> validRowsResult(int idx, Message<JsonObject> res) {
    if ("ok".equals(res.body().getString("status"))) {
        JsonArray a = res.body().getJsonArray("results");
        if (a != null && idx < a.size()) {
            return validRows(a.getJsonObject(idx));
        } else {/*from w  w  w .  j a  va 2  s.c  o m*/
            return new Either.Left<>("missing.result");
        }
    } else {
        return new Either.Left<>(res.body().getString("message", ""));
    }
}

From source file:org.entcore.common.sql.SqlResult.java

License:Open Source License

public static Handler<Message<JsonObject>> validUniqueResultHandler(
        final Handler<Either<String, JsonObject>> handler, final String... jsonbFields) {
    return new Handler<Message<JsonObject>>() {
        @Override//from  w w w .j  a v a 2 s  .co  m
        public void handle(Message<JsonObject> event) {
            if (jsonbFields != null && jsonbFields.length > 0) {
                event.body().put("jsonb_fields",
                        new fr.wseduc.webutils.collections.JsonArray(Arrays.asList(jsonbFields)));
            }
            handler.handle(validUniqueResult(event));
        }
    };
}