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.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 v  a 2  s .  com*/
        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 a 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), sort, projection, finalHandler);
        }
    });
}

From source file:org.entcore.cas.data.EntCoreDataHandler.java

License:Open Source License

private AuthCas deserialize(JsonObject res) {
    if (res == null) {
        return null;
    }/*w w w . ja va  2  s .c  o  m*/
    res.remove("updatedAt");
    try {
        return mapper.readValue(res.encode(), AuthCas.class);
    } catch (IOException e) {
        log.error(e.getMessage(), e);
        return null;
    }
}

From source file:org.entcore.cas.services.DefaultRegisteredService.java

License:Open Source License

protected void prepareUser(final User user, final String userId, String service, final JsonObject data) {
    if (principalAttributeName != null) {
        user.setUser(data.getString(principalAttributeName));
        data.remove(principalAttributeName);
    } else {/*from  www. j av  a 2  s.  c o m*/
        user.setUser(userId);
    }
    data.remove("password");

    Map<String, String> attributes = new HashMap<>();
    for (String attr : data.fieldNames()) {
        attributes.put(attr, data.getValue(attr).toString());
    }
    user.setAttributes(attributes);
}

From source file:org.entcore.cas.services.EliotRegisteredService.java

License:Open Source License

@Override
protected void prepareUser(final User user, final String userId, String service, final JsonObject data) {
    if (principalAttributeName != null) {
        user.setUser(data.getString(principalAttributeName));
        data.remove(principalAttributeName);
    } else {//ww w.ja  v  a 2 s.  c o m
        user.setUser(userId);
    }
}

From source file:org.entcore.common.elasticsearch.BulkRequest.java

License:Open Source License

public void index(JsonObject element, JsonObject metadata) {
    if (element == null)
        return;/*  w  w  w. j ava 2  s.c o  m*/
    if (metadata == null) {
        metadata = new JsonObject();
        final Object id = element.remove("_id");
        if (id != null) {
            metadata.put("_id", id);
        }
    }
    request.write(new JsonObject().put("index", metadata).encode() + "\n" + element.encode() + "\n");
}

From source file:org.entcore.common.neo4j.Neo4jRest.java

License:Open Source License

public void executeTransaction(final JsonArray statements, final Integer transactionId, final boolean commit,
        final boolean allowRetry, final Handler<JsonObject> handler) {
    String uri = "/transaction";
    if (transactionId != null) {
        uri += "/" + transactionId;
    }/*from w ww  .  j  av a  2s  .c  o m*/
    if (commit) {
        uri += "/commit";
    }
    try {
        sendRequest(uri, new JsonObject().put("statements", statements), new Handler<HttpClientResponse>() {
            @Override
            public void handle(final HttpClientResponse resp) {
                resp.bodyHandler(new Handler<Buffer>() {

                    @Override
                    public void handle(Buffer b) {
                        logger.debug(b.toString());
                        if (resp.statusCode() != 404 && resp.statusCode() != 500) {
                            JsonObject json = new JsonObject(b.toString("UTF-8"));
                            JsonArray results = json.getJsonArray("results");
                            if (json.getJsonArray("errors", new fr.wseduc.webutils.collections.JsonArray())
                                    .size() == 0 && results != null) {
                                JsonArray out = new fr.wseduc.webutils.collections.JsonArray();
                                for (Object o : results) {
                                    if (!(o instanceof JsonObject))
                                        continue;
                                    out.add(transformJson((JsonObject) o));
                                }
                                json.put("results", out);
                                String commit = json.getString("commit");
                                if (commit != null) {
                                    String[] c = commit.split("/");
                                    if (c.length > 2) {
                                        json.put("transactionId", Integer.parseInt(c[c.length - 2]));
                                    }
                                }
                                json.remove("errors");
                                handler.handle(json);
                            } else {
                                if (transactionId == null && commit && allowRetry
                                        && json.getJsonArray("errors") != null
                                        && json.getJsonArray("errors").size() > 0) {
                                    JsonArray errors = json.getJsonArray("errors");
                                    for (Object o : errors) {
                                        if (!(o instanceof JsonObject))
                                            continue;
                                        switch (((JsonObject) o).getString("code", "")) {
                                        case "Neo.TransientError.Transaction.ConstraintsChanged":
                                        case "Neo.TransientError.Transaction.DeadlockDetected":
                                        case "Neo.TransientError.Transaction.InstanceStateChanged":
                                        case "Neo.TransientError.Schema.SchemaModifiedConcurrently":
                                            executeTransaction(statements, transactionId, commit, false,
                                                    handler);
                                            if (logger.isDebugEnabled()) {
                                                logger.debug("Retry transaction : " + statements.encode());
                                            }
                                            return;
                                        }
                                    }
                                }
                                handler.handle(
                                        new JsonObject().put("message",
                                                json.getJsonArray("errors",
                                                        new fr.wseduc.webutils.collections.JsonArray())
                                                        .encode()));
                            }
                        } else {
                            handler.handle(new JsonObject().put("message",
                                    resp.statusMessage() + " : " + b.toString()));
                        }
                    }
                });
            }
        });
    } catch (Neo4jConnectionException e) {
        ExceptionUtils.exceptionToJson(e);
    }
}

From source file:org.entcore.common.neo4j.Neo4jRest.java

License:Open Source License

@Override
public void rollbackTransaction(int transactionId, final Handler<JsonObject> handler) {
    try {//  w w  w .  ja v  a2  s  .c om
        HttpClientRequest req = nodeManager.getClient().delete(basePath + "/transaction/" + transactionId,
                new Handler<HttpClientResponse>() {
                    @Override
                    public void handle(final HttpClientResponse resp) {
                        resp.bodyHandler(new Handler<Buffer>() {

                            @Override
                            public void handle(Buffer b) {
                                logger.debug(b.toString());
                                if (resp.statusCode() != 404 && resp.statusCode() != 500) {
                                    JsonObject json = new JsonObject(b.toString("UTF-8"));
                                    if (json.getJsonArray("errors",
                                            new fr.wseduc.webutils.collections.JsonArray()).size() == 0) {
                                        json.remove("errors");
                                        handler.handle(json);
                                    } else {
                                        handler.handle(new JsonObject().put("message",
                                                json.getJsonArray("errors",
                                                        new fr.wseduc.webutils.collections.JsonArray())
                                                        .encode()));
                                    }
                                } else {
                                    handler.handle(new JsonObject().put("message", resp.statusMessage()));
                                }
                            }
                        });
                    }
                });
        req.headers().add("Accept", "application/json; charset=UTF-8");
        req.exceptionHandler(e -> logger.error("Error rollbacking transaction : " + transactionId, e));
        req.end();
    } catch (Neo4jConnectionException e) {
        ExceptionUtils.exceptionToJson(e);
    }
}

From source file:org.entcore.common.neo4j.Neo4jResult.java

License:Open Source License

public static Either<String, JsonObject> fullNodeMerge(String nodeAttr, Message<JsonObject> res,
        String... otherNodes) {/*from w w  w. ja  v a 2 s .  c o m*/
    Either<String, JsonObject> r = validUniqueResult(res);
    if (r.isRight() && r.right().getValue().size() > 0) {
        JsonObject j = r.right().getValue();
        JsonObject data = j.getJsonObject(nodeAttr, new JsonObject()).getJsonObject("data");
        if (otherNodes != null && otherNodes.length > 0) {
            for (String attr : otherNodes) {
                Object e = j.getValue(attr);
                if (e == null)
                    continue;
                if (e instanceof JsonObject) {
                    data.put(attr, ((JsonObject) e).getJsonObject("data"));
                } else if (e instanceof JsonArray) {
                    JsonArray a = new fr.wseduc.webutils.collections.JsonArray();
                    for (Object o : (JsonArray) e) {
                        if (!(o instanceof JsonObject))
                            continue;
                        JsonObject jo = (JsonObject) o;
                        a.add(jo.getJsonObject("data"));
                    }
                    data.put(attr, a);
                }
                j.remove(attr);
            }
        }
        if (data != null) {
            j.remove(nodeAttr);
            return new Either.Right<>(data.mergeIn(j));
        }
    }
    return r;
}

From source file:org.entcore.common.notification.TimelineHelper.java

License:Open Source License

public void notifyTimeline(final HttpServerRequest req, final String notificationName, UserInfos sender,
        final List<String> recipients, String resource, String subResource, final JsonObject params,
        final boolean disableAntiFlood) {
    notificationsLoader.getNotification(notificationName, notification -> {
        JsonArray r = new fr.wseduc.webutils.collections.JsonArray();
        for (String userId : recipients) {
            r.add(new JsonObject().put("userId", userId).put("unread", 1));
        }/*  w  w  w  .  j av  a 2  s. c  o m*/
        final JsonObject event = new JsonObject().put("action", "add")
                .put("type", notification.getString("type"))
                .put("event-type", notification.getString("event-type")).put("recipients", r)
                .put("recipientsIds", new fr.wseduc.webutils.collections.JsonArray(recipients));
        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);
        }
        if (disableAntiFlood || params.getBoolean("disableAntiFlood", false)) {
            event.put("disableAntiFlood", true);
        }
        Long date = params.getLong("timeline-publish-date");
        if (date != null) {
            event.put("date", new JsonObject().put("$date", date));
            params.remove("timeline-publish-date");
        }

        event.put("pushNotif", params.remove("pushNotif"));

        HttpServerRequest request;
        if (req == null) {
            request = new JsonHttpServerRequest(new JsonObject());
        } else {
            request = req;
        }
        event.put("params", params).put("notificationName", notificationName).put("notification", notification)
                .put("request",
                        new JsonObject().put("headers",
                                new JsonObject().put("Host", Renders.getHost(request))
                                        .put("X-Forwarded-Proto", Renders.getScheme(request))
                                        .put("Accept-Language", request.headers().get("Accept-Language"))));
        eb.send(TIMELINE_ADDRESS, event, handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
            public void handle(Message<JsonObject> event) {
                JsonObject result = event.body();
                if ("error".equals(result.getString("status", "error"))) {
                    log.error("Error in timeline notification : " + result.getString("message"));
                }
            }
        }));
    });
}