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.auth.users.DefaultUserAuthAccount.java

License:Open Source License

@Override
public void blockUser(String id, boolean block, final Handler<Boolean> handler) {
    String query = "MATCH (n:`User` { id : {id}}) SET n.blocked = {block} return count(*) = 1 as exists";
    JsonObject params = new JsonObject().put("id", id).put("block", block);
    neo.execute(query, params, new Handler<Message<JsonObject>>() {
        @Override/*  w w w.j a  va  2 s . c  om*/
        public void handle(Message<JsonObject> r) {
            handler.handle("ok".equals(r.body().getString("status")) && r.body().getJsonArray("result") != null
                    && r.body().getJsonArray("result").getValue(0) != null
                    && (r.body().getJsonArray("result").getJsonObject(0)).getBoolean("exists", false));
        }
    });
}

From source file:org.entcore.auth.users.DefaultUserAuthAccount.java

License:Open Source License

@Override
public void storeDomain(String id, String domain, String scheme, final Handler<Boolean> handler) {
    String query = "MATCH (u:User {id: {id}}) "
            + "SET u.lastDomain = {domain}, u.lastScheme = {scheme}, u.lastLogin = {now} "
            + "return count(*) = 1 as exists";
    JsonObject params = new JsonObject().put("id", id).put("domain", domain).put("scheme", scheme).put("now",
            DateTime.now().toString());/*w ww.  j  a  va 2s  .c  o m*/
    neo.execute(query, params, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> r) {
            handler.handle("ok".equals(r.body().getString("status")) && r.body().getJsonArray("result") != null
                    && r.body().getJsonArray("result").getValue(0) != null
                    && (r.body().getJsonArray("result").getJsonObject(0)).getBoolean("exists", false));
        }
    });
}

From source file:org.entcore.auth.users.DefaultUserAuthAccount.java

License:Open Source License

private void updatePassword(final Handler<Boolean> handler, String query, String password,
        Map<String, Object> params) {
    final String pw = BCrypt.hashpw(password, BCrypt.gensalt());
    params.put("password", pw);
    neo.send(query, params, new Handler<Message<JsonObject>>() {

        @Override//from   w  w  w  . jav a 2 s  .c  o m
        public void handle(Message<JsonObject> res) {
            JsonObject r = res.body().getJsonObject("result");
            handler.handle("ok".equals(res.body().getString("status")) && r.getJsonObject("0") != null
                    && pw.equals(r.getJsonObject("0").getString("pw")));
        }
    });
}

From source file:org.entcore.blog.security.BlogResourcesProvider.java

License:Open Source License

private void hasRightOnPost(final HttpServerRequest request, final UserInfos user,
        final Handler<Boolean> handler, String action) {
    String postId = request.params().get("postId");
    if (StringUtils.isEmpty(postId)) {
        handler.handle(false);/*  www.  ja  va  2 s.  co  m*/
        return;
    }
    //
    QueryBuilder query = QueryBuilder.start("_id").is(postId);
    request.pause();
    mongo.findOne("posts", MongoQueryBuilder.build(query), null, new JsonArray().add("blog"),
            new Handler<Message<JsonObject>>() {
                @Override
                public void handle(Message<JsonObject> event) {
                    request.resume();
                    if ("ok".equals(event.body().getString("status"))) {
                        JsonObject res = event.body().getJsonObject("result");
                        if (res == null) {
                            handler.handle(false);
                            return;
                        }
                        /**
                         * Is author?
                         */
                        if (res.getJsonObject("author") != null
                                && user.getUserId().equals(res.getJsonObject("author").getString("userId"))) {
                            handler.handle(true);
                            return;
                        }
                        if (res.getJsonObject("blog") != null
                                && res.getJsonObject("blog").getJsonArray("shared") != null) {
                            /**
                             * is author?
                             */
                            String blogAuthorId = res.getJsonObject("blog")
                                    .getJsonObject("author", new JsonObject()).getString("userId");
                            if (blogAuthorId != null && blogAuthorId.equals(user.getUserId())) {
                                handler.handle(true);
                                return;
                            }
                            /**
                             * has right action?
                             */
                            for (Object o : res.getJsonObject("blog").getJsonArray("shared")) {
                                if (!(o instanceof JsonObject))
                                    continue;
                                JsonObject json = (JsonObject) o;
                                if (json != null && json.getBoolean(action, false)
                                        && (user.getUserId().equals(json.getString("userId"))
                                                || user.getGroupsIds().contains(json.getString("groupId")))) {
                                    handler.handle(true);
                                    return;
                                }
                            }
                        }
                        handler.handle(false);
                    }
                }
            });
}

From source file:org.entcore.blog.security.BlogResourcesProvider.java

License:Open Source License

private void executeCountQuery(final HttpServerRequest request, String collection, JsonObject query,
        final int expectedCountResult, final Handler<Boolean> handler) {
    request.pause();/* w  ww  .java2 s .  c  o m*/
    mongo.count(collection, query, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            request.resume();
            JsonObject res = event.body();
            handler.handle(res != null && "ok".equals(res.getString("status"))
                    && expectedCountResult == res.getInteger("count"));
        }
    });
}

From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java

License:Open Source License

@Override
public void deleteUsers(JsonArray users) {
    if (users == null || users.size() == 0) {
        return;/*from w w  w . ja va 2 s.  c  o  m*/
    }

    final String[] userIds = new String[users.size()];
    for (int i = 0; i < users.size(); i++) {
        JsonObject j = users.getJsonObject(i);
        userIds[i] = j.getString("id");
    }

    final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("shared.userId").in(userIds));

    MongoUpdateBuilder modifier = new MongoUpdateBuilder();
    modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("userId").in(userIds)));

    final String collection = DefaultBlogService.BLOG_COLLECTION;
    mongo.update(collection, criteria, modifier.build(), false, true, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> event) {
            if (!"ok".equals(event.body().getString("status"))) {
                log.error("Error deleting users shared in collection " + collection + " : "
                        + event.body().getString("message"));
            }

            final JsonObject criteria = MongoQueryBuilder
                    .build(QueryBuilder.start("author.userId").in(userIds));
            MongoUpdateBuilder modifier = new MongoUpdateBuilder();
            modifier.set("author.deleted", true);
            mongo.update(collection, criteria, modifier.build(), false, true,
                    new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> event) {
                            if (!"ok".equals(event.body().getString("status"))) {
                                log.error("Error deleting users shared in collection " + collection + " : "
                                        + event.body().getString("message"));
                            } else {
                                delete(collection);
                            }
                        }
                    });
        }
    });
}

From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java

License:Open Source License

private void delete(final String collection) {
    final JsonObject query = MongoQueryBuilder
            .build(QueryBuilder.start("shared.org-entcore-blog-controllers-BlogController|shareJson")
                    .notEquals(true).put("author.deleted").is(true));

    mongo.find(collection, query, null, new JsonObject().put("_id", 1), new Handler<Message<JsonObject>>() {
        @Override/*from   w w w  .  j  a v a 2  s .co m*/
        public void handle(Message<JsonObject> res) {
            String status = res.body().getString("status");
            JsonArray results = res.body().getJsonArray("results");
            if ("ok".equals(status) && results != null && results.size() > 0) {
                String[] blogIds = new String[results.size()];
                for (int i = 0; i < results.size(); i++) {
                    JsonObject j = results.getJsonObject(i);
                    blogIds[i] = j.getString("_id");
                }
                QueryBuilder q = QueryBuilder.start("blog.$id").in(blogIds);
                mongo.delete(DefaultPostService.POST_COLLECTION, MongoQueryBuilder.build(q),
                        new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> event) {
                                if (!"ok".equals(event.body().getString("status"))) {
                                    log.error("Error deleting posts : " + event.body().encode());
                                } else {
                                    log.info("Posts deleted : " + event.body().getInteger("number"));
                                }
                            }
                        });
                QueryBuilder query = QueryBuilder.start("_id").in(blogIds);
                mongo.delete(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() {
                    @Override
                    public void handle(Message<JsonObject> event) {
                        if (!"ok".equals(event.body().getString("status"))) {
                            log.error("Error deleting blogs : " + event.body().encode());
                        } else {
                            log.info("Blogs deleted : " + event.body().getInteger("number"));
                        }
                    }
                });
            }
        }
    });
}

From source file:org.entcore.blog.services.impl.DefaultBlogService.java

License:Open Source License

@Override
public void delete(final String blogId, final Handler<Either<String, JsonObject>> result) {
    QueryBuilder q = QueryBuilder.start("blog.$id").is(blogId);
    mongo.delete("posts", MongoQueryBuilder.build(q), new Handler<Message<JsonObject>>() {
        @Override/*from w  w w  .  j ava  2  s . co m*/
        public void handle(Message<JsonObject> res) {
            if ("ok".equals(res.body().getString("status"))) {
                QueryBuilder query = QueryBuilder.start("_id").is(blogId);
                mongo.delete(BLOG_COLLECTION, MongoQueryBuilder.build(query),
                        new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> event) {
                                result.handle(Utils.validResult(event));
                            }
                        });
            } else {
                result.handle(Utils.validResult(res));
            }
        }
    });
}

From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java

License:Open Source License

@Override
public void notifyShare(final HttpServerRequest request, final String blogId, final UserInfos user,
        final JsonArray sharedArray, final String resourceUri) {
    if (sharedArray != null && user != null && blogId != null && request != null && resourceUri != null) {
        QueryBuilder query = QueryBuilder.start("_id").is(blogId);
        JsonObject keys = new JsonObject().put("title", 1);
        mongo.findOne("blogs", MongoQueryBuilder.build(query), keys, new Handler<Message<JsonObject>>() {
            @Override/*from   w  w  w .  j  a v a 2s .c  o m*/
            public void handle(final Message<JsonObject> event) {
                if ("ok".equals(event.body().getString("status"))) {
                    List<String> shareIds = getSharedIds(sharedArray);
                    if (!shareIds.isEmpty()) {
                        Map<String, Object> params = new HashMap<>();
                        params.put("userId", user.getUserId());
                        neo.send(neoQuery(shareIds), params, new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> res) {
                                if ("ok".equals(res.body().getString("status"))) {
                                    JsonObject r = res.body().getJsonObject("result");
                                    List<String> recipients = new ArrayList<>();
                                    for (String attr : r.fieldNames()) {
                                        String id = r.getJsonObject(attr).getString("id");
                                        if (id != null) {
                                            recipients.add(id);
                                        }
                                    }
                                    String blogTitle = event.body().getJsonObject("result", new JsonObject())
                                            .getString("title");
                                    JsonObject p = new JsonObject()
                                            .put("uri",
                                                    "/userbook/annuaire#" + user.getUserId() + "#"
                                                            + user.getType())
                                            .put("username", user.getUsername()).put("blogTitle", blogTitle)
                                            .put("resourceUri", resourceUri).put("disableAntiFlood", true);
                                    notification.notifyTimeline(request, "blog.share", user, recipients, blogId,
                                            p);
                                }
                            }
                        });
                    }
                }
            }
        });
    }
}

From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java

License:Open Source License

@Override
public void notifySubmitPost(final HttpServerRequest request, final String blogId, final String postId,
        final UserInfos user, final String resourceUri) {
    if (resourceUri != null && user != null && blogId != null && request != null) {
        QueryBuilder blogQuery = QueryBuilder.start("_id").is(blogId);
        JsonObject blogKeys = new JsonObject().put("author", 1);
        mongo.findOne("blogs", MongoQueryBuilder.build(blogQuery), blogKeys,
                new Handler<Message<JsonObject>>() {
                    @Override//from  ww w . j a va2  s .c om
                    public void handle(final Message<JsonObject> event) {
                        if ("ok".equals(event.body().getString("status"))) {
                            final String authorId = event.body().getJsonObject("result", new JsonObject())
                                    .getJsonObject("author", new JsonObject()).getString("userId");

                            final QueryBuilder query = QueryBuilder.start("_id").is(postId);
                            final JsonObject keys = new JsonObject().put("title", 1).put("blog", 1);
                            final JsonArray fetch = new JsonArray().add("blog");

                            mongo.findOne("posts", MongoQueryBuilder.build(query), keys, fetch,
                                    MongoDbResult.validResultHandler(new Handler<Either<String, JsonObject>>() {
                                        public void handle(Either<String, JsonObject> event) {
                                            if (event.isLeft())
                                                return;

                                            final JsonObject post = event.right().getValue();

                                            findRecipiants("posts", query, keys, fetch,
                                                    "org-entcore-blog-controllers-PostController|publish", user,
                                                    new Handler<Map<String, Object>>() {
                                                        @Override
                                                        public void handle(Map<String, Object> event) {
                                                            List<String> recipients = new ArrayList<>();
                                                            if (event != null)
                                                                recipients = (List<String>) event
                                                                        .get("recipients");

                                                            recipients.add(authorId);
                                                            JsonObject p = new JsonObject()
                                                                    .put("uri",
                                                                            "/userbook/annuaire#"
                                                                                    + user.getUserId() + "#"
                                                                                    + user.getType())
                                                                    .put("username", user.getUsername())
                                                                    .put("blogTitle",
                                                                            post.getJsonObject("blog",
                                                                                    new JsonObject())
                                                                                    .getString("title"))
                                                                    .put("blogUri", resourceUri)
                                                                    .put("postTitle", post.getString("title"))
                                                                    .put("postUri", resourceUri + "/" + postId)
                                                                    .put("resourceUri",
                                                                            resourceUri + "/" + postId)
                                                                    .put("disableAntiFlood", true);
                                                            notification.notifyTimeline(request,
                                                                    "blog.submit-post", user, recipients,
                                                                    blogId, postId, p);

                                                        }
                                                    });
                                        }
                                    }));
                        }
                    }
                });
    }
}