List of usage examples for io.vertx.core.eventbus Message body
@CacheReturn T body();
From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java
License:Open Source License
private void findRecipiants(String collection, QueryBuilder query, JsonObject keys, final JsonArray fetch, final String filterRights, final UserInfos user, final Handler<Map<String, Object>> handler) { mongo.findOne(collection, MongoQueryBuilder.build(query), keys, fetch, new Handler<Message<JsonObject>>() { @Override// w w w . j ava2 s. c o m public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { final JsonObject blog = event.body().getJsonObject("result", new JsonObject()); JsonArray shared; if (fetch == null) { shared = blog.getJsonArray("shared"); } else { shared = blog.getJsonObject("blog", new JsonObject()).getJsonArray("shared"); } if (shared != null) { shared.add(blog.getJsonObject("blog", new JsonObject()).getJsonObject("author")); //Allows owner to get notified for contributors posts List<String> shareIds = getSharedIds(shared, filterRights); 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); } } Map<String, Object> t = new HashMap<>(); t.put("recipients", recipients); t.put("blog", blog); handler.handle(t); } else { handler.handle(null); } } }); } else { handler.handle(null); } } else { handler.handle(null); } } else { handler.handle(null); } } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void list(String blogId, final UserInfos user, final Integer page, final int limit, final String search, final Set<String> states, final Handler<Either<String, JsonArray>> result) { final QueryBuilder accessQuery; if (states == null || states.isEmpty()) { accessQuery = QueryBuilder.start("blog.$id").is(blogId); } else {/* w w w. jav a2 s. c om*/ accessQuery = QueryBuilder.start("blog.$id").is(blogId).put("state").in(states); } final QueryBuilder isManagerQuery = getDefautQueryBuilderForList(blogId, user, true); final JsonObject sort = new JsonObject().put("modified", -1); final JsonObject projection = defaultKeys.copy(); projection.remove("content"); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; mongo.count("blogs", MongoQueryBuilder.build(isManagerQuery), new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if (res == null || !"ok".equals(res.getString("status"))) { result.handle(new Either.Left<String, JsonArray>(event.body().encodePrettily())); return; } boolean isManager = 1 == res.getInteger("count", 0); accessQuery.or(QueryBuilder.start("state").is(StateType.PUBLISHED.name()).get(), QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.DRAFT.name()).get()) .get(), isManager ? QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get() : QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get()) .get()); final QueryBuilder query = getQueryListBuilder(search, result, accessQuery); if (query != null) { if (limit > 0 && page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, 0, limit, limit, finalHandler); } else if (page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, finalHandler); } else { final JsonObject sortPag = new JsonObject().put("sorted", -1); final int skip = (0 == page) ? -1 : page * limit; mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sortPag, projection, skip, limit, limit, finalHandler); } } } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void counter(final String blogId, final UserInfos user, final Handler<Either<String, JsonArray>> result) { final QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId); final QueryBuilder isManagerQuery = getDefautQueryBuilderForList(blogId, user, true); final JsonObject projection = new JsonObject(); projection.put("state", 1); projection.put("_id", -1); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override/*ww w .jav a 2s . c om*/ public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; mongo.count("blogs", MongoQueryBuilder.build(isManagerQuery), new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if (res == null || !"ok".equals(res.getString("status"))) { result.handle(new Either.Left<String, JsonArray>(event.body().encodePrettily())); return; } boolean isManager = 1 == res.getInteger("count", 0); query.or(QueryBuilder.start("state").is(StateType.PUBLISHED.name()).get(), QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.DRAFT.name()).get()) .get(), isManager ? QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get() : QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get()) .get()); mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), null, projection, finalHandler); } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void list(String blogId, final StateType state, final UserInfos user, final Integer page, final int limit, final String search, final Handler<Either<String, JsonArray>> result) { final QueryBuilder accessQuery = QueryBuilder.start("blog.$id").is(blogId).put("state").is(state.name()); final JsonObject sort = new JsonObject().put("modified", -1); final JsonObject projection = defaultKeys.copy(); projection.remove("content"); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override/* w ww .j a v a 2s. c o m*/ public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; final QueryBuilder query = getQueryListBuilder(search, result, accessQuery); if (query != null) { if (StateType.PUBLISHED.equals(state)) { if (limit > 0 && page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, 0, limit, limit, finalHandler); } else if (page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, finalHandler); } else { final int skip = (0 == page) ? -1 : page * limit; final JsonObject sortPag = new JsonObject().put("sorted", -1); mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sortPag, projection, skip, limit, limit, finalHandler); } } else { QueryBuilder query2 = getDefautQueryBuilderForList(blogId, user, true); mongo.count("blogs", MongoQueryBuilder.build(query2), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if ((res != null && "ok".equals(res.getString("status")) && 1 != res.getInteger("count")) || StateType.DRAFT.equals(state)) { accessQuery.put("author.userId").is(user.getUserId()); } final QueryBuilder listQuery = getQueryListBuilder(search, result, accessQuery); if (limit > 0 && page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sort, projection, 0, limit, limit, finalHandler); } else if (page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sort, projection, finalHandler); } else { final JsonObject sortPag = new JsonObject().put("sorted", -1); final int skip = (0 == page) ? -1 : page * limit; mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sortPag, projection, skip, limit, limit, finalHandler); } } }); } } }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void listOne(String blogId, String postId, final UserInfos user, final Handler<Either<String, JsonArray>> result) { final QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId).put("_id").is(postId); final QueryBuilder isManagerQuery = getDefautQueryBuilderForList(blogId, user, true); final JsonObject sort = new JsonObject().put("modified", -1); final JsonObject projection = defaultKeys.copy(); projection.remove("content"); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override//from w w w. ja v a 2s . c o m public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; mongo.count("blogs", MongoQueryBuilder.build(isManagerQuery), new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if (res == null || !"ok".equals(res.getString("status"))) { result.handle(new Either.Left<String, JsonArray>(event.body().encodePrettily())); return; } boolean isManager = 1 == res.getInteger("count", 0); query.or(QueryBuilder.start("state").is(StateType.PUBLISHED.name()).get(), QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.DRAFT.name()).get()) .get(), isManager ? QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get() : QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get()) .get()); mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, finalHandler); } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void submit(String blogId, String postId, UserInfos user, final Handler<Either<String, JsonObject>> result) { QueryBuilder query = QueryBuilder.start("_id").is(postId).put("blog.$id").is(blogId).put("state") .is(StateType.DRAFT.name()).put("author.userId").is(user.getUserId()); final JsonObject q = MongoQueryBuilder.build(query); JsonObject keys = new JsonObject().put("blog", 1).put("firstPublishDate", 1); JsonArray fetch = new JsonArray().add("blog"); mongo.findOne(POST_COLLECTION, q, keys, fetch, new Handler<Message<JsonObject>>() { @Override// w w w . j av a 2s . c o m public void handle(Message<JsonObject> event) { final JsonObject res = event.body().getJsonObject("result", new JsonObject()); if ("ok".equals(event.body().getString("status")) && res.size() > 0) { BlogService.PublishType type = Utils.stringToEnum( res.getJsonObject("blog", new JsonObject()).getString("publish-type"), BlogService.PublishType.RESTRAINT, BlogService.PublishType.class); final StateType state = (BlogService.PublishType.RESTRAINT.equals(type)) ? StateType.SUBMITTED : StateType.PUBLISHED; MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().set("state", state.name()); // if IMMEDIATE published post, first publishing must define the first published date if (StateType.PUBLISHED.equals(state) && res.getJsonObject("firstPublishDate") == null) { updateQuery = updateQuery.set("firstPublishDate", MongoDb.now()).set("sorted", MongoDb.now()); } mongo.update(POST_COLLECTION, q, updateQuery.build(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { res.body().put("state", state.name()); result.handle(Utils.validResult(res)); } }); } else { result.handle(Utils.validResult(event)); } } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void addComment(String blogId, String postId, final String comment, final UserInfos author, final Handler<Either<String, JsonObject>> result) { if (comment == null || comment.trim().isEmpty()) { result.handle(new Either.Left<String, JsonObject>("Validation error : invalid comment.")); return;/*from w w w . j a va2 s. com*/ } QueryBuilder query = QueryBuilder.start("_id").is(postId).put("blog.$id").is(blogId); final JsonObject q = MongoQueryBuilder.build(query); JsonObject keys = new JsonObject().put("blog", 1); JsonArray fetch = new JsonArray().add("blog"); mongo.findOne(POST_COLLECTION, q, keys, fetch, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result", new JsonObject()).size() > 0) { BlogService.CommentType type = Utils.stringToEnum( event.body().getJsonObject("result").getJsonObject("blog", new JsonObject()) .getString("comment-type"), BlogService.CommentType.RESTRAINT, BlogService.CommentType.class); if (BlogService.CommentType.NONE.equals(type)) { result.handle(new Either.Left<String, JsonObject>("Comments are disabled for this blog.")); return; } StateType s = BlogService.CommentType.IMMEDIATE.equals(type) ? StateType.PUBLISHED : StateType.SUBMITTED; JsonObject user = new JsonObject().put("userId", author.getUserId()) .put("username", author.getUsername()).put("login", author.getLogin()); JsonObject c = new JsonObject().put("comment", comment).put("id", UUID.randomUUID().toString()) .put("state", s.name()).put("author", user).put("created", MongoDb.now()); MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().push("comments", c); mongo.update(POST_COLLECTION, q, updateQuery.build(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { result.handle(Utils.validResult(res)); } }); } else { result.handle(Utils.validResult(event)); } } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void deleteComment(final String blogId, final String commentId, final UserInfos user, final Handler<Either<String, JsonObject>> result) { QueryBuilder query2 = getDefautQueryBuilderForList(blogId, user, false); mongo.count("blogs", MongoQueryBuilder.build(query2), new Handler<Message<JsonObject>>() { @Override/* w w w . ja v a 2 s. co m*/ public void handle(Message<JsonObject> event) { JsonObject res = event.body(); QueryBuilder tmp = QueryBuilder.start("id").is(commentId); if (res != null && "ok".equals(res.getString("status")) && 1 != res.getInteger("count")) { tmp.put("author.userId").is(user.getUserId()); } QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId).put("comments").elemMatch(tmp.get()); JsonObject c = new JsonObject().put("id", commentId); MongoUpdateBuilder queryUpdate = new MongoUpdateBuilder().pull("comments", c); mongo.update(POST_COLLECTION, MongoQueryBuilder.build(query), queryUpdate.build(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { result.handle(Utils.validResult(res)); } }); } }); }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void listComment(String blogId, String postId, final UserInfos user, final Handler<Either<String, JsonArray>> result) { final QueryBuilder query = QueryBuilder.start("_id").is(postId).put("blog.$id").is(blogId); JsonObject keys = new JsonObject().put("comments", 1).put("blog", 1); JsonArray fetch = new JsonArray().add("blog"); mongo.findOne(POST_COLLECTION, MongoQueryBuilder.build(query), keys, fetch, new Handler<Message<JsonObject>>() { @Override//from w w w . j a va 2s . co m public void handle(Message<JsonObject> event) { JsonArray comments = new JsonArray(); if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result", new JsonObject()).size() > 0) { JsonObject res = event.body().getJsonObject("result"); boolean userIsManager = userIsManager(user, res.getJsonObject("blog")); for (Object o : res.getJsonArray("comments", new JsonArray())) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (userIsManager || StateType.PUBLISHED.name().equals(j.getString("state")) || user.getUserId().equals( j.getJsonObject("author", new JsonObject()).getString("userId"))) { comments.add(j); } } } result.handle(new Either.Right<String, JsonArray>(comments)); } }); }
From source file:org.entcore.cas.controllers.ConfigurationController.java
License:Open Source License
public void loadPatterns() { eb.send("wse.app.registry.bus", new JsonObject().put("action", "list-cas-connectors"), handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override/*from w w w . j ava2 s. c o m*/ public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { services.cleanPatterns(); JsonArray externalApps = event.body().getJsonArray("result"); for (Object o : externalApps) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; String service = j.getString("service"); JsonArray patterns = j.getJsonArray("patterns"); if (service != null && !service.trim().isEmpty() && patterns != null && patterns.size() > 0) { services.addPatterns(service, Arrays.copyOf(patterns.getList().toArray(), patterns.size(), String[].class)); } } } else { log.error(event.body().getString("message")); } } })); }