List of usage examples for io.vertx.core.json JsonArray JsonArray
public JsonArray()
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;/* w ww. ja v a2s. c o m*/ } 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 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 ava 2 s . 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.common.notification.NotificationUtils.java
License:Open Source License
public static void getFcmTokensByUser(String userId, final Handler<Either<String, JsonArray>> handler) { final JsonObject params = new JsonObject().put("userId", userId); String query = "MATCH (u:User {id:{userId}})-[:PREFERS]->(uac:UserAppConf)" + " RETURN uac.fcmTokens AS tokens"; Neo4j.getInstance().execute(query, params, validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { @Override// w w w .j a va 2s . c o m public void handle(Either<String, JsonObject> event) { if (event.isRight()) { JsonArray result = event.right().getValue().getJsonArray("tokens"); if (result == null) result = new JsonArray(); handler.handle(new Either.Right<String, JsonArray>(result)); } else { handler.handle(new Either.Left<String, JsonArray>(event.left().getValue())); } } })); }
From source file:org.entcore.common.notification.NotificationUtils.java
License:Open Source License
public static void getFcmTokensByUsers(JsonArray userIds, final Handler<Either<String, JsonArray>> handler) { final JsonObject params = new JsonObject().put("userIds", userIds); String query = "MATCH (u:User)-[:PREFERS]->(uac:UserAppConf) WHERE u.id IN {userIds} " + " UNWIND(uac.fcmTokens) as token WITH DISTINCT token RETURN collect(token) as tokens"; Neo4j.getInstance().execute(query, params, validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { @Override/* w w w . jav a 2 s . com*/ public void handle(Either<String, JsonObject> event) { if (event.isRight()) { JsonArray result = event.right().getValue().getJsonArray("tokens"); if (result == null) result = new JsonArray(); handler.handle(new Either.Right<String, JsonArray>(result)); } else { handler.handle(new Either.Left<String, JsonArray>(event.left().getValue())); } } })); }
From source file:org.entcore.common.share.impl.GenericShareService.java
License:Open Source License
protected void getNotifyMembers(Handler<Either<String, JsonObject>> handler, JsonArray oldShared, JsonArray members, Function<Object, String> f) { JsonArray notifyMembers;/*from w w w . j a v a 2 s .com*/ if (oldShared != null && oldShared.size() > 0 && members != null && members.size() > 0) { final Set<String> oldMembersIds = oldShared.stream().map(f).collect(Collectors.toSet()); notifyMembers = new JsonArray(); for (Object o : members) { final JsonObject j = (JsonObject) o; final String memberId = getOrElse(j.getString("groupId"), j.getString("userId")); if (!oldMembersIds.contains(memberId)) { notifyMembers.add(j); } } } else { notifyMembers = members; } handler.handle(new Either.Right<>(new JsonObject().put("notify-timeline-array", notifyMembers))); }
From source file:org.entcore.common.share.impl.SqlShareService.java
License:Open Source License
@Override public void share(String userId, String resourceId, JsonObject share, Handler<Either<String, JsonObject>> handler) { shareValidation(resourceId, userId, share, res -> { if (res.isRight()) { final SqlStatementsBuilder s = new SqlStatementsBuilder(); s.prepared("SELECT member_id FROM " + shareTable + " WHERE resource_id = ?", new JsonArray().add(resourceId)); s.prepared("DELETE FROM " + shareTable + " WHERE resource_id = ?", new JsonArray().add(resourceId)); final JsonArray users = res.right().getValue().getJsonArray("users"); if (users != null && users.size() > 0) { s.raw("LOCK TABLE " + schema + "users IN SHARE ROW EXCLUSIVE MODE"); for (Object u : users) { s.raw("INSERT INTO " + schema + "users (id) SELECT '" + u.toString() + "' WHERE NOT EXISTS (SELECT * FROM " + schema + "users WHERE id='" + u.toString() + "');"); }/* w w w .j a va 2 s. co m*/ } final JsonArray groups = res.right().getValue().getJsonArray("groups"); if (groups != null && groups.size() > 0) { s.raw("LOCK TABLE " + schema + "groups IN SHARE ROW EXCLUSIVE MODE"); for (Object g : groups) { s.raw("INSERT INTO " + schema + "groups (id) SELECT '" + g.toString() + "' WHERE NOT EXISTS (SELECT * FROM " + schema + "groups WHERE id='" + g.toString() + "');"); } } s.insert(shareTable, new JsonArray().add("member_id").add("resource_id").add("action"), res.right().getValue().getJsonArray("shared")); sql.transaction(s.build(), SqlResult.validResultHandler(0, old -> { if (old.isRight()) { JsonArray oldMembers = old.right().getValue(); JsonArray members = res.right().getValue().getJsonArray("notify-members"); getNotifyMembers(handler, oldMembers, members, (m -> ((JsonObject) m).getString("member_id"))); } else { handler.handle(new Either.Left<>(old.left().getValue())); } })); } else { handler.handle(res); } }); }
From source file:org.entcore.common.share.impl.SqlShareService.java
License:Open Source License
@Override protected void prepareSharedArray(String resourceId, String type, JsonArray shared, String attr, Set<String> actions) { for (String action : actions) { shared.add(new JsonArray().add(attr).add(resourceId).add(action)); }//from w w w. java 2 s . c o m }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
private void deleteMessages(final HttpServerRequest request, final List<String> ids, final Boolean deleteAll, Handler<Either<String, JsonArray>> handler) { getUserInfos(eb, request, new Handler<UserInfos>() { @Override/*from ww w .j a v a 2 s.com*/ public void handle(final UserInfos user) { if (user != null) { conversationService.delete(ids, deleteAll, user, new Handler<Either<String, JsonArray>>() { @Override public void handle(Either<String, JsonArray> event) { if (event.isLeft()) { if (handler != null) { handler.handle(event); } else { badRequest(request, event.left().getValue()); } return; } JsonArray results = event.right().getValue(); final long freeQuota = results.getJsonArray(0).getJsonObject(0).getLong("totalquota", 0L); updateUserQuota(user.getUserId(), -freeQuota, new Handler<Void>() { public void handle(Void event) { if (handler != null) { handler.handle(new Either.Right<>(new JsonArray())); } else { ok(request); } } }); } }); } else { unauthorized(request); } } }); }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
private void deleteFolders(final HttpServerRequest request, final String folderId, final Boolean deleteAll, final Handler<Either<String, JsonArray>> handler) { Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() { public void handle(final UserInfos user) { if (user == null) { unauthorized(request);/*from w w w. ja v a2s .c o m*/ return; } conversationService.deleteFolder(folderId, deleteAll, user, new Handler<Either<String, JsonArray>>() { public void handle(Either<String, JsonArray> event) { if (event.isLeft()) { if (handler != null) { handler.handle(event); } else { badRequest(request, event.left().getValue()); } return; } JsonArray results = event.right().getValue(); final long freeQuota = results.getJsonArray(0).getJsonObject(0) .getLong("totalquota", 0L); updateUserQuota(user.getUserId(), -freeQuota, new Handler<Void>() { public void handle(Void event) { if (handler != null) { handler.handle(new Either.Right<>(new JsonArray())); } else { ok(request); } } }); } }); } }; UserUtils.getUserInfos(eb, request, userInfosHandler); }
From source file:org.entcore.directory.controllers.GroupController.java
License:Open Source License
@Get("/group/:groupId") @SecuredAction(value = "", type = ActionType.AUTHENTICATED) public void getGroup(HttpServerRequest request) { groupService.getInfos(request.params().get("groupId"), r -> { if (r.isRight()) { JsonObject res = r.right().getValue(); UserUtils.translateGroupsNames(new JsonArray().add(res), I18n.acceptLanguage(request)); renderJson(request, res);/*from ww w . j av a2s . c o m*/ } else { leftToResponse(request, r.left()); } }); }