List of usage examples for io.vertx.core.json JsonObject getString
public String getString(String key)
From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java
License:Open Source License
@Override public void notifyPublishComment(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 query = QueryBuilder.start("_id").is(postId); JsonObject keys = new JsonObject().put("title", 1).put("blog", 1); JsonArray fetch = new JsonArray().add("blog"); findRecipiants("posts", query, keys, fetch, user, new Handler<Map<String, Object>>() { @Override/*from ww w . ja v a2s .c om*/ public void handle(Map<String, Object> event) { if (event != null) { List<String> recipients = (List<String>) event.get("recipients"); JsonObject blog = (JsonObject) event.get("blog"); String ownerId = blog.getJsonObject("blog", new JsonObject()) .getJsonObject("author", new JsonObject()).getString("userId"); if (ownerId != null && !ownerId.equals(user.getUserId())) { if (recipients == null) { recipients = new ArrayList<String>(); } recipients.add(ownerId); } if (recipients != null) { JsonObject p = new JsonObject() .put("uri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType()) .put("username", user.getUsername()) .put("blogTitle", blog.getJsonObject("blog", new JsonObject()).getString("title")) .put("blogUri", resourceUri).put("postTitle", blog.getString("title")) .put("postUri", resourceUri + "/" + postId) .put("resourceUri", resourceUri + "/" + postId).put("disableAntiFlood", true); notification.notifyTimeline(request, "blog.publish-comment", user, recipients, blogId, postId, p); } } } }); } }
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 {//from ww w.j ava 2 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/*from ww w .ja v a 2 s.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), 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//from w w w . j a va 2s . co 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/* w w w . j av a2 s. 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 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//from www . j av a 2s. c om 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// w w w.j a va2s . com 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.blog.services.impl.DefaultPostService.java
License:Open Source License
private boolean userIsManager(UserInfos user, JsonObject res) { if (res != null && res.getJsonArray("shared") != null) { for (Object o : res.getJsonArray("shared")) { if (!(o instanceof JsonObject)) continue; JsonObject json = (JsonObject) o; return json != null && json.getBoolean("manager", false) && (user.getUserId().equals(json.getString("userId")) || user.getGroupsIds().contains(json.getString("groupId"))); }// w w w. jav a 2 s. c o m } return false; }
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/*ww w.j ava 2 s. co 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")); } } })); }
From source file:org.entcore.cas.services.AcademicSuffixRegisteredService.java
License:Open Source License
@Override public void configure(io.vertx.core.eventbus.EventBus eb, java.util.Map<String, Object> conf) { super.configure(eb, conf); if (conf.containsKey("academicSuffix") && conf.containsKey("academicPattern")) { ACADEMIC_SUFFIX.clear();/*from ww w. jav a2 s . c om*/ final List<String> academicSuffixString = ((JsonArray) conf.get("academicSuffix")).getList(); for (final String as : academicSuffixString) { final JsonObject jo = new JsonObject(as); ACADEMIC_SUFFIX.put(jo.getString("source"), jo.getString("target")); } this.academicConfPattern = (String) conf.get("academicPattern"); this.academicPattern = Pattern.compile(academicConfPattern); } if (conf.containsKey("externalIdPrefix")) { this.externalIdPrefix = (String) conf.get("externalIdPrefix"); } }