Example usage for io.vertx.core.json JsonObject remove

List of usage examples for io.vertx.core.json JsonObject remove

Introduction

In this page you can find the example usage for io.vertx.core.json JsonObject remove.

Prototype

public Object remove(String key) 

Source Link

Document

Remove an entry from this object.

Usage

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);
            }
        }
    });
}