List of usage examples for io.vertx.core.json JsonObject remove
public Object remove(String key)
From source file:org.entcore.common.notification.TimelineHelper.java
License:Open Source License
/** * @deprecated//from www. j a v a 2s . c o m * Notification system was refactored in version 1.16.1 */ @Deprecated public void notifyTimeline(HttpServerRequest request, UserInfos sender, String type, final String eventType, List<String> recipients, String resource, String subResource, String template, JsonObject params) { JsonArray r = new fr.wseduc.webutils.collections.JsonArray(); for (String userId : recipients) { r.add(new JsonObject().put("userId", userId).put("unread", 1)); } final JsonObject event = new JsonObject().put("action", "add").put("type", type) .put("event-type", eventType).put("recipients", r); if (resource != null) { event.put("resource", resource); } if (sender != null) { event.put("sender", sender.getUserId()); } if (subResource != null && !subResource.trim().isEmpty()) { event.put("sub-resource", subResource); } Long date = params.getLong("timeline-publish-date"); if (date != null) { event.put("date", new JsonObject().put("$date", date)); params.remove("timeline-publish-date"); } render.processTemplate(request, template, params, new Handler<String>() { @Override public void handle(String message) { if (message != null) { event.put("message", message); eb.send(TIMELINE_ADDRESS, event); } else { log.error("Unable to send timeline " + eventType + " notification."); } } }); }
From source file:org.entcore.common.share.impl.MongoDbShareService.java
License:Open Source License
private void removeShare(String resourceId, final String shareId, List<String> removeActions, boolean isGroup, final Handler<Either<String, JsonObject>> handler) { final String shareIdAttr = isGroup ? "groupId" : "userId"; final List<String> actions = findRemoveActions(removeActions); QueryBuilder query = QueryBuilder.start("_id").is(resourceId); JsonObject keys = new JsonObject().put("shared", 1); final JsonObject q = MongoQueryBuilder.build(query); mongo.findOne(collection, q, keys, new Handler<Message<JsonObject>>() { @Override//w w w . ja va 2s.co m public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result") != null) { JsonArray actual = event.body().getJsonObject("result").getJsonArray("shared", new fr.wseduc.webutils.collections.JsonArray()); JsonArray shared = new fr.wseduc.webutils.collections.JsonArray(); for (int i = 0; i < actual.size(); i++) { JsonObject s = actual.getJsonObject(i); String id = s.getString(shareIdAttr); if (shareId.equals(id)) { if (actions != null) { for (String action : actions) { s.remove(action); } if (s.size() > 1) { shared.add(s); } } } else { shared.add(s); } } MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().set("shared", shared); mongo.update(collection, q, updateQuery.build(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { handler.handle(Utils.validResult(res)); } }); } else { handler.handle(new Either.Left<String, JsonObject>("Resource not found.")); } } }); }
From source file:org.entcore.common.sql.SqlResult.java
License:Open Source License
private static void parseShared(JsonObject j) { Map<String, JsonObject> shared = new HashMap<>(); JsonArray a = new fr.wseduc.webutils.collections.JsonArray(); JsonArray s = new fr.wseduc.webutils.collections.JsonArray(j.getString("shared")); JsonArray m = new fr.wseduc.webutils.collections.JsonArray(j.getString("groups")); for (Object o : s) { if (o == null || !(o instanceof JsonObject)) continue; JsonObject json = (JsonObject) o; String member = json.getString("member_id"); String action = json.getString("action"); if (member != null && action != null) { if (shared.containsKey(member)) { shared.get(member).put(action, true); } else { JsonObject sj = new JsonObject().put(action, true); if (m.contains(member)) { sj.put("groupId", member); } else { sj.put("userId", member); }// ww w .j a v a2 s . co m shared.put(member, sj); a.add(sj); } } } j.remove("groups"); j.put("shared", a); }
From source file:org.entcore.common.user.UserUtils.java
License:Open Source License
public static JsonObject translateAndGroupVisible(JsonArray visibles, String acceptLanguage, boolean returnGroupType) { final JsonObject visible = new JsonObject(); final JsonArray users = new fr.wseduc.webutils.collections.JsonArray(); final JsonArray groups = new fr.wseduc.webutils.collections.JsonArray(); visible.put("groups", groups).put("users", users); for (Object o : visibles) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (j.getString("name") != null) { j.remove("displayName"); j.remove("profile"); j.remove("mood"); if (returnGroupType) { Object gt = j.remove("groupType"); Object gp = j.remove("groupProfile"); if (gt instanceof Iterable) { for (Object gti : (Iterable) gt) { if (gti != null && !"Group".equals(gti) && gti.toString().endsWith("Group")) { j.put("groupType", gti); if ("ProfileGroup".equals(gti)) { j.put("profile", gp); }//w w w . j a v a 2 s . c o m break; } } } } j.put("sortName", j.getString("name")); UserUtils.groupDisplayName(j, acceptLanguage); groups.add(j); } else { if (returnGroupType) { j.remove("groupProfile"); j.remove("groupType"); } j.remove("name"); j.remove("nbUsers"); users.add(j); } } return visible; }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
private void timelineNotification(HttpServerRequest request, JsonObject sentMessage, UserInfos user) { log.debug(sentMessage.encode());//from w w w . j a v a 2 s . com JsonArray r = sentMessage.getJsonArray("sentIds"); String id = sentMessage.getString("id"); String subject = sentMessage.getString("subject", "<span translate key=\"timeline.no.subject\"></span>"); sentMessage.remove("sentIds"); sentMessage.remove("id"); sentMessage.remove("subject"); if (r == null || id == null || user == null) { return; } final JsonObject params = new JsonObject() .put("uri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType()) .put("username", user.getUsername()).put("subject", subject) .put("messageUri", pathPrefix + "/conversation#/read-mail/" + id); params.put("resourceUri", params.getString("messageUri")); params.put("pushNotif", new JsonObject().put("title", "push.notif.new.message").put("body", user.getUsername() + " : " + sentMessage.getString("body"))); List<String> recipients = new ArrayList<>(); String idTmp; for (Object o : r) { if (!(o instanceof String)) continue; idTmp = (String) o; if (!user.getUserId().equals(idTmp)) recipients.add(idTmp); } notification.notifyTimeline(request, "messagerie.send-message", user, recipients, id, params); }
From source file:org.entcore.conversation.service.impl.DefaultConversationService.java
License:Open Source License
@Override public void findVisibleRecipients(final String parentMessageId, final UserInfos user, final String acceptLanguage, String search, final Handler<Either<String, JsonObject>> result) { if (validationParamsError(user, result)) return;// www . j a v a 2 s .co m final JsonObject visible = new JsonObject(); String replyGroupQuery; final JsonObject params = new JsonObject(); if (parentMessageId != null && !parentMessageId.trim().isEmpty()) { params.put("conversation", applicationName); replyGroupQuery = ", (m:ConversationMessage)<-[:HAS_CONVERSATION_MESSAGE]-f" + "<-[:HAS_CONVERSATION_FOLDER]-(c:Conversation) " + "WHERE m.id = {parentMessageId} AND c.userId = {userId} " + "AND (pg.id = visibles.id OR pg.id IN m.to OR pg.id IN m.cc) "; params.put("userId", user.getUserId()).put("parentMessageId", parentMessageId); String groups = "MATCH (app:Application)-[:PROVIDE]->(a:Action)<-[:AUTHORIZE]-(r:Role)" + "<-[:AUTHORIZED]-(g:Group)<-[:DEPENDS*0..1]-(pg:Group) " + replyGroupQuery + " AND app.name = {conversation} " + "RETURN DISTINCT pg.id as id, pg.name as name, pg.groupDisplayName as groupDisplayName, pg.structureName as structureName "; findVisibles(eb, user.getUserId(), groups, params, false, true, false, acceptLanguage, new Handler<JsonArray>() { @Override public void handle(JsonArray visibleGroups) { visible.put("groups", visibleGroups); String replyUserQuery; replyUserQuery = ", (m:ConversationMessage)<-[:HAS_CONVERSATION_MESSAGE]-f" + "<-[:HAS_CONVERSATION_FOLDER]-(c:Conversation) " + "WHERE m.id = {parentMessageId} AND c.userId = {userId} " + "AND (u.id = visibles.id OR u.id IN m.to OR u.id IN m.cc) "; String users = "MATCH (app:Application)-[:PROVIDE]->(a:Action)<-[:AUTHORIZE]-(r:Role)" + "<-[:AUTHORIZED]-(pg:Group)<-[:IN]-(u:User) " + replyUserQuery + "AND app.name = {conversation} " + "RETURN DISTINCT u.id as id, u.displayName as displayName, " + "visibles.profiles[0] as profile"; findVisibleUsers(eb, user.getUserId(), true, true, users, params, new Handler<JsonArray>() { @Override public void handle(JsonArray visibleUsers) { visible.put("users", visibleUsers); result.handle(new Either.Right<String, JsonObject>(visible)); } }); } }); } else { params.put("true", true); String groups = "MATCH visibles<-[:IN*0..1]-(u:User)-[:HAS_CONVERSATION]->(c:Conversation {active:{true}}) " + "RETURN DISTINCT visibles.id as id, visibles.name as name, " + "visibles.displayName as displayName, visibles.groupDisplayName as groupDisplayName, " + "visibles.profiles[0] as profile, visibles.structureName as structureName"; findVisibles(eb, user.getUserId(), groups, params, true, true, false, new Handler<JsonArray>() { @Override public void handle(JsonArray visibles) { JsonArray users = new fr.wseduc.webutils.collections.JsonArray(); JsonArray groups = new fr.wseduc.webutils.collections.JsonArray(); visible.put("groups", groups).put("users", users); for (Object o : visibles) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (j.getString("name") != null) { j.remove("displayName"); UserUtils.groupDisplayName(j, acceptLanguage); groups.add(j); } else { j.remove("name"); users.add(j); } } result.handle(new Either.Right<String, JsonObject>(visible)); } }); } }
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
private void callFindVisibles(UserInfos user, final String acceptLanguage, final Handler<Either<String, JsonObject>> result, final JsonObject visible, JsonObject params, String preFilter, String customReturn) { findVisibles(eb, user.getUserId(), customReturn, params, true, true, false, acceptLanguage, preFilter, new Handler<JsonArray>() { @Override//w w w .j a va 2 s . com public void handle(JsonArray visibles) { JsonArray users = new fr.wseduc.webutils.collections.JsonArray(); JsonArray groups = new fr.wseduc.webutils.collections.JsonArray(); visible.put("groups", groups).put("users", users); for (Object o : visibles) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (j.getString("name") != null) { j.remove("displayName"); UserUtils.groupDisplayName(j, acceptLanguage); groups.add(j); } else { j.remove("name"); users.add(j); } } result.handle(new Either.Right<String, JsonObject>(visible)); } }); }
From source file:org.entcore.directory.controllers.GroupController.java
License:Open Source License
@Post("/group") @SecuredAction(value = "", type = ActionType.RESOURCE) public void create(final HttpServerRequest request) { bodyToJson(request, pathPrefix + "createManualGroup", new Handler<JsonObject>() { @Override/*from w w w. j a va 2 s . c o m*/ public void handle(JsonObject body) { final String structureId = body.getString("structureId"); final String classId = body.getString("classId"); body.remove("structureId"); body.remove("classId"); groupService.createOrUpdateManual(body, structureId, classId, notEmptyResponseHandler(request, 201)); } }); }
From source file:org.entcore.directory.controllers.ShareBookmarkController.java
License:Open Source License
@Get("/sharebookmark/:id") @SecuredAction(value = "", type = ActionType.AUTHENTICATED) public void get(HttpServerRequest request) { UserUtils.getUserInfos(eb, request, user -> { if (user != null) { final String id = request.params().get("id"); if ("all".equals(id)) { shareBookmarkService.list(user.getUserId(), arrayResponseHandler(request)); } else { shareBookmarkService.get(user.getUserId(), id, r -> { if (r.isRight()) { final JsonObject res = r.right().getValue(); JsonArray members = res.getJsonArray("members"); if (members == null || members.isEmpty()) { shareBookmarkService.delete(user.getUserId(), id, dres -> { if (dres.isLeft()) { log.error("Error deleting sharebookmark " + id + " : " + dres.left().getValue()); }// w ww . j a v a 2s . c o m }); notFound(request, "empty.sharebookmark"); return; } res.mergeIn(UserUtils.translateAndGroupVisible(members, I18n.acceptLanguage(request), true)); res.remove("members"); renderJson(request, res); } else { leftToResponse(request, r.left()); } }); } } else { badRequest(request, "invalid.user"); } }); }
From source file:org.entcore.directory.controllers.UserBookController.java
License:Open Source License
@Put("/preference/:application") @SecuredAction(value = "user.preference", type = ActionType.AUTHENTICATED) public void updatePreference(final HttpServerRequest request) { UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() { @Override/* w w w . j a v a2 s . c o m*/ public void handle(final UserInfos user) { if (user != null) { final JsonObject params = new JsonObject().put("userId", user.getUserId()); final String application = request.params().get("application").replaceAll("\\W+", ""); request.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer body) { params.put("conf", body.toString("UTF-8")); String query = "MATCH (u:User {id:{userId}})" + "MERGE (u)-[:PREFERS]->(uac:UserAppConf)" + " ON CREATE SET uac." + application + " = {conf}" + " ON MATCH SET uac." + application + " = {conf}"; neo.execute(query, params, validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> result) { if (result.isRight()) { renderJson(request, result.right().getValue()); UserUtils.getSession(eb, request, new Handler<JsonObject>() { public void handle(JsonObject session) { final JsonObject cache = session.getJsonObject("cache"); if (cache.containsKey("preferences")) { JsonObject prefs = cache.getJsonObject("preferences"); prefs.put(application, params.getString("conf")); if ("theme".equals(application)) { prefs.remove(THEME_ATTRIBUTE + getHost(request)); } UserUtils.addSessionAttribute(eb, user.getUserId(), "preferences", prefs, new Handler<Boolean>() { public void handle(Boolean event) { UserUtils.removeSessionAttribute(eb, user.getUserId(), THEME_ATTRIBUTE + getHost(request), null); if (!event) log.error( "Could not add preferences attribute to session."); } }); } } }); } else { leftToResponse(request, result.left()); } } })); } }); } else { badRequest(request); } } }); }