List of usage examples for io.vertx.core.json JsonObject getJsonArray
public JsonArray getJsonArray(String key)
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Put("delete") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(MultipleMessageUserFilter.class) public void delete(final HttpServerRequest request) { bodyToJson(request, new Handler<JsonObject>() { @Override//from w w w . jav a2s . c om public void handle(JsonObject body) { JsonArray ids = body.getJsonArray("id"); if (ids == null || ids.isEmpty()) { badRequest(request); return; } deleteMessages(request, ids.getList(), false); } }); }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Post("toggleUnread") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(MultipleMessageUserFilter.class) public void toggleUnread(final HttpServerRequest request) { bodyToJson(request, new Handler<JsonObject>() { @Override//from w w w . ja v a 2s .c o m public void handle(JsonObject body) { final JsonArray ids = body.getJsonArray("id"); final Boolean unread = body.getBoolean("unread"); if (ids == null || ids.isEmpty() || unread == null) { badRequest(request); return; } UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() { @Override public void handle(final UserInfos user) { if (user != null) { conversationService.toggleUnread(ids.getList(), unread, user, defaultResponseHandler(request)); } else { unauthorized(request); } } }); } }); }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Put("move/userfolder/:folderId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(FoldersMessagesFilter.class) public void move(final HttpServerRequest request) { final String folderId = request.params().get("folderId"); bodyToJson(request, new Handler<JsonObject>() { @Override//from w w w. j a v a2 s . c o m public void handle(JsonObject body) { final JsonArray messageIds = body.getJsonArray("id"); if (messageIds == null || messageIds.size() == 0) { badRequest(request); return; } Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() { public void handle(final UserInfos user) { if (user == null) { unauthorized(request); return; } conversationService.moveToFolder(messageIds.getList(), folderId, user, defaultResponseHandler(request)); } }; UserUtils.getUserInfos(eb, request, userInfosHandler); } }); }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Put("message/:id/forward/:forwardedId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(MessageUserFilter.class) public void forwardAttachments(final HttpServerRequest request) { final String messageId = request.params().get("id"); final String forwardedId = request.params().get("forwardedId"); //1 - get user infos Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() { public void handle(final UserInfos user) { if (user == null) { unauthorized(request);// ww w.j av a 2 s. c om return; } //2 - get user quota getUserQuota(user.getUserId(), new Handler<JsonObject>() { public void handle(JsonObject j) { if (j == null || "error".equals(j.getString("status"))) { badRequest(request, j == null ? "" : j.getString("message")); return; } final long quotaLeft = j.getLong("quota", 0l) - j.getLong("storage", 0l); //3 - get forwarded message attachments conversationService.get(forwardedId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { if (event.isLeft()) { badRequest(request, event.left().getValue()); return; } if (event.isRight() && event.right().getValue() == null) { badRequest(request, event.right().getValue().toString()); return; } final JsonObject neoResult = event.right().getValue(); final JsonArray attachments = neoResult.getJsonArray("attachments"); long attachmentsSize = 0l; for (Object genericObj : attachments) { JsonObject attachment = (JsonObject) genericObj; attachmentsSize += attachment.getLong("size", 0l); } final long finalAttachmentsSize = attachmentsSize; // if total attachment size > quota left, return 403 if (attachmentsSize > quotaLeft) { forbidden(request, "forward.failed.quota"); return; } //4 - forward attachments, add relationships between the message and the already existing attachments conversationService.forwardAttachments(forwardedId, messageId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { if (event.isLeft()) { badRequest(request, event.left().getValue()); return; } //5 - update user quota updateUserQuota(user.getUserId(), finalAttachmentsSize, new Handler<Void>() { @Override public void handle(Void event) { ok(request); } }); } }); } }); } }); } }; UserUtils.getUserInfos(eb, request, userInfosHandler); }
From source file:org.entcore.conversation.service.impl.DefaultConversationService.java
License:Open Source License
private boolean displayNamesCondition(JsonObject message) { return message != null && ((message.containsKey("from") && !message.getString("from").trim().isEmpty()) || (message.containsKey("to") && message.getJsonArray("to").size() > 0) || (message.containsKey("cc") && message.getJsonArray("cc").size() > 0)); }
From source file:org.entcore.conversation.service.impl.DefaultConversationService.java
License:Open Source License
private void sendWithAttachments(final String parentMessageId, final String messageId, JsonArray attachments, final UserInfos user, final Handler<Either<String, JsonObject>> result) { long totalAttachmentsSize = 0l; for (Object o : attachments) { totalAttachmentsSize = totalAttachmentsSize + ((JsonObject) o).getLong("size", 0l); }/*from www .jav a2 s . com*/ final String usersQuery; JsonObject params = new JsonObject().put("userId", user.getUserId()).put("messageId", messageId) .put("draft", State.DRAFT.name()).put("outbox", "OUTBOX").put("inbox", "INBOX") .put("sent", State.SENT.name()).put("attachmentsSize", totalAttachmentsSize).put("true", true); if (parentMessageId != null && !parentMessageId.trim().isEmpty()) { // reply usersQuery = "MATCH (m:ConversationMessage { id : {parentMessageId}}) " + "WITH (COLLECT(visibles.id) + coalesce(m.to, '') + coalesce(m.cc, '') + coalesce(m.from, '')) as vis " + "MATCH (v:Visible) " + "WHERE v.id IN vis " + "WITH DISTINCT v "; params.put("parentMessageId", parentMessageId); } else { usersQuery = "WITH visibles as v "; } String query = usersQuery + "MATCH v<-[:IN*0..1]-(u:User), (message:ConversationMessage)-[:HAS_ATTACHMENT]->(attachment: MessageAttachment) " + "WHERE (v: User or v:Group) " + "AND message.id = {messageId} AND message.state = {draft} AND message.from = {userId} AND " + "(v.id IN message.to OR v.id IN message.cc) " + "WITH DISTINCT u, message, (v.id + '$' + coalesce(v.displayName, ' ') + '$' + " + "coalesce(v.name, ' ') + '$' + coalesce(v.groupDisplayName, ' ')) as dNames, COLLECT(distinct attachment.id) as attachments " + "MATCH (ub: UserBook)<-[:USERBOOK]-(u)-[:HAS_CONVERSATION]->(c:Conversation {active:{true}})" + "-[:HAS_CONVERSATION_FOLDER]->(f:ConversationSystemFolder {name:{inbox}}) " + "WHERE (ub.quota - ub.storage) >= {attachmentsSize} " + "CREATE UNIQUE f-[:HAS_CONVERSATION_MESSAGE { unread: {true}, attachments: attachments }]->message " + "SET ub.storage = ub.storage + {attachmentsSize} " + "WITH message, COLLECT(c.userId) as sentIds, COLLECT(distinct u) as users, " + "COLLECT(distinct dNames) as displayNames " + "MATCH (s:User {id : {userId}})-[:HAS_CONVERSATION]->(:Conversation)" + "-[:HAS_CONVERSATION_FOLDER]->(fOut:ConversationSystemFolder {name : {outbox}}), " + "message<-[r:HAS_CONVERSATION_MESSAGE]-(fDraft:ConversationSystemFolder {name : {draft}}) " + "SET message.state = {sent}, " + "message.displayNames = displayNames + (s.id + '$' + coalesce(s.displayName, ' ') + '$ $ ') " + "CREATE UNIQUE fOut-[:HAS_CONVERSATION_MESSAGE { insideFolder: r.insideFolder, attachments: r.attachments }]->message " + "DELETE r " + "RETURN sentIds, message.id as id"; findVisibles(eb, user.getUserId(), query, params, true, true, false, new Handler<JsonArray>() { @Override public void handle(JsonArray event) { if (event != null && event.size() == 1 && (event.getValue(0) instanceof JsonObject)) { JsonObject resultObj = event.getJsonObject(0); JsonArray sentIds = resultObj.getJsonArray("sentIds"); String messageId = resultObj.getString("id"); String query = usersQuery + "MATCH v<-[:IN*0..1]-(u:User), (message:ConversationMessage) " + "WHERE (v: User or v:Group) " + "AND message.id = {messageId} AND message.from = {userId} AND " + "(v.id IN message.to OR v.id IN message.cc) " + "RETURN EXTRACT(user IN FIlTER(x IN COLLECT(u) WHERE NOT(x.id IN {sentIds}))|user.displayName) as undelivered, {sentIds} as sentIds, [] as inactive, " + "{sentIdsLength} as sent, message.id as id, message.subject as subject"; JsonObject params = new JsonObject().put("userId", user.getUserId()).put("messageId", messageId) .put("sentIds", sentIds).put("sentIdsLength", sentIds.size()); if (parentMessageId != null && !parentMessageId.trim().isEmpty()) { params.put("parentMessageId", parentMessageId); } findVisibles(eb, user.getUserId(), query, params, true, true, false, new Handler<JsonArray>() { @Override public void handle(JsonArray event) { if (event != null && event.size() == 1 && (event.getValue(0) instanceof JsonObject)) { result.handle(new Either.Right<String, JsonObject>(event.getJsonObject(0))); } else { result.handle(new Either.Left<String, JsonObject>("conversation.send.error")); } } }); } else { result.handle(new Either.Left<String, JsonObject>("conversation.send.error")); } } }); }
From source file:org.entcore.directory.controllers.ClassController.java
License:Open Source License
@Put("/class/:classId/apply") @SecuredAction(value = "", type = ActionType.RESOURCE) public void applyComRulesAndRegistryEvent(final HttpServerRequest request) { bodyToJson(request, new Handler<JsonObject>() { @Override/*from www. j a v a 2s. com*/ public void handle(JsonObject body) { final String classId = request.params().get("classId"); JsonArray userIds = body.getJsonArray("userIds"); if (userIds != null) { ClassController.this.initPostCreate(classId, userIds); request.response().end(); } else { badRequest(request); } } }); }
From source file:org.entcore.directory.controllers.GroupController.java
License:Open Source License
@Put("/group/:groupId/users/add") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AdminFilter.class) public void addUsers(final HttpServerRequest request) { final String groupId = request.params().get("groupId"); if (groupId != null && !groupId.trim().isEmpty()) { bodyToJson(request, new Handler<JsonObject>() { @Override//from ww w . j a v a2s. com public void handle(JsonObject body) { final JsonArray userIds = body.getJsonArray("userIds"); groupService.addUsers(groupId, userIds, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> res) { if (res.isRight()) { JsonObject j = new JsonObject().put("action", "setCommunicationRules") .put("groupId", groupId); eb.send("wse.communication", j); ApplicationUtils.publishModifiedUserGroup(eb, userIds); renderJson(request, res.right().getValue()); } else { renderJson(request, new JsonObject().put("error", res.left().getValue()), 400); } } }); } }); } }
From source file:org.entcore.directory.controllers.GroupController.java
License:Open Source License
@Put("/group/:groupId/users/delete") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(AdminFilter.class) public void removeUsers(final HttpServerRequest request) { final String groupId = request.params().get("groupId"); if (groupId != null && !groupId.trim().isEmpty()) { bodyToJson(request, new Handler<JsonObject>() { @Override//from www . jav a 2 s . c om public void handle(JsonObject body) { final JsonArray userIds = body.getJsonArray("userIds"); groupService.removeUsers(groupId, userIds, defaultResponseHandler(request)); } }); } }
From source file:org.entcore.directory.controllers.ProfileController.java
License:Open Source License
@Post("/functiongroup") @SecuredAction("profile.create.function.group") public void createFunctionGroup(final HttpServerRequest request) { bodyToJson(request, pathPrefix + "createFunctionGroup", new Handler<JsonObject>() { @Override// ww w. j a v a 2 s. c o m public void handle(JsonObject event) { profileService.createFunctionGroup(event.getJsonArray("functionsCodes"), event.getString("name"), event.getString("externalId"), notEmptyResponseHandler(request, 201)); } }); }