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

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

Introduction

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

Prototype

public String getString(String key) 

Source Link

Document

Get the string value with the specified key, special cases are addressed for extended JSON types Instant , byte[] and Enum which can be converted to String.

Usage

From source file:org.entcore.blog.services.impl.DefaultBlogTimelineService.java

License:Open Source License

@Override
public void notifyPublishComment(final HttpServerRequest request, final String blogId, final String postId,
        final UserInfos user, final String resourceUri) {
    if (resourceUri != null && user != null && blogId != null && request != null) {
        QueryBuilder query = QueryBuilder.start("_id").is(postId);
        JsonObject keys = new JsonObject().put("title", 1).put("blog", 1);
        JsonArray fetch = new JsonArray().add("blog");
        findRecipiants("posts", query, keys, fetch, user, new Handler<Map<String, Object>>() {
            @Override/*from  ww w . ja v  a2s  .c  om*/
            public void handle(Map<String, Object> event) {
                if (event != null) {
                    List<String> recipients = (List<String>) event.get("recipients");
                    JsonObject blog = (JsonObject) event.get("blog");
                    String ownerId = blog.getJsonObject("blog", new JsonObject())
                            .getJsonObject("author", new JsonObject()).getString("userId");
                    if (ownerId != null && !ownerId.equals(user.getUserId())) {
                        if (recipients == null) {
                            recipients = new ArrayList<String>();
                        }
                        recipients.add(ownerId);
                    }
                    if (recipients != null) {
                        JsonObject p = new JsonObject()
                                .put("uri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType())
                                .put("username", user.getUsername())
                                .put("blogTitle",
                                        blog.getJsonObject("blog", new JsonObject()).getString("title"))
                                .put("blogUri", resourceUri).put("postTitle", blog.getString("title"))
                                .put("postUri", resourceUri + "/" + postId)
                                .put("resourceUri", resourceUri + "/" + postId).put("disableAntiFlood", true);
                        notification.notifyTimeline(request, "blog.publish-comment", user, recipients, blogId,
                                postId, p);
                    }
                }
            }
        });
    }
}

From source file:org.entcore.blog.services.impl.DefaultPostService.java

License:Open Source License

@Override
public void list(String blogId, final UserInfos user, final Integer page, final int limit, final String search,
        final Set<String> states, final Handler<Either<String, JsonArray>> result) {
    final QueryBuilder accessQuery;
    if (states == null || states.isEmpty()) {
        accessQuery = QueryBuilder.start("blog.$id").is(blogId);
    } else {//from   ww  w.j ava 2 s  .c  om
        accessQuery = QueryBuilder.start("blog.$id").is(blogId).put("state").in(states);
    }

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

            accessQuery.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());

            final QueryBuilder query = getQueryListBuilder(search, result, accessQuery);

            if (query != null) {
                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 JsonObject sortPag = new JsonObject().put("sorted", -1);
                    final int skip = (0 == page) ? -1 : page * limit;
                    mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sortPag, projection, skip,
                            limit, limit, finalHandler);
                }
            }
        }
    });
}

From source file:org.entcore.blog.services.impl.DefaultPostService.java

License:Open Source License

@Override
public void counter(final String blogId, final UserInfos user,
        final Handler<Either<String, JsonArray>> result) {
    final QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId);
    final QueryBuilder isManagerQuery = getDefautQueryBuilderForList(blogId, user, true);
    final JsonObject projection = new JsonObject();
    projection.put("state", 1);
    projection.put("_id", -1);

    final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() {
        @Override/*from  ww w .ja 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), null, projection, finalHandler);
        }
    });
}

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  va  2s .  co  m
        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  av  a2  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.blog.services.impl.DefaultPostService.java

License:Open Source License

@Override
public void deleteComment(final String blogId, final String commentId, final UserInfos user,
        final Handler<Either<String, JsonObject>> result) {
    QueryBuilder query2 = getDefautQueryBuilderForList(blogId, user, false);
    mongo.count("blogs", MongoQueryBuilder.build(query2), new Handler<Message<JsonObject>>() {
        @Override//from  www  . j av a  2s.  c om
        public void handle(Message<JsonObject> event) {
            JsonObject res = event.body();
            QueryBuilder tmp = QueryBuilder.start("id").is(commentId);
            if (res != null && "ok".equals(res.getString("status")) && 1 != res.getInteger("count")) {
                tmp.put("author.userId").is(user.getUserId());
            }
            QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId).put("comments").elemMatch(tmp.get());
            JsonObject c = new JsonObject().put("id", commentId);
            MongoUpdateBuilder queryUpdate = new MongoUpdateBuilder().pull("comments", c);
            mongo.update(POST_COLLECTION, MongoQueryBuilder.build(query), queryUpdate.build(),
                    new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> res) {
                            result.handle(Utils.validResult(res));
                        }
                    });
        }
    });
}

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//  w  w  w.j  a va2s .  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.blog.services.impl.DefaultPostService.java

License:Open Source License

private boolean userIsManager(UserInfos user, JsonObject res) {
    if (res != null && res.getJsonArray("shared") != null) {
        for (Object o : res.getJsonArray("shared")) {
            if (!(o instanceof JsonObject))
                continue;
            JsonObject json = (JsonObject) o;
            return json != null && json.getBoolean("manager", false)
                    && (user.getUserId().equals(json.getString("userId"))
                            || user.getGroupsIds().contains(json.getString("groupId")));
        }//  w w w.  jav a  2 s. c o m
    }
    return false;
}

From source file:org.entcore.cas.controllers.ConfigurationController.java

License:Open Source License

public void loadPatterns() {
    eb.send("wse.app.registry.bus", new JsonObject().put("action", "list-cas-connectors"),
            handlerToAsyncHandler(new Handler<Message<JsonObject>>() {
                @Override/*ww w.j ava  2  s. co m*/
                public void handle(Message<JsonObject> event) {
                    if ("ok".equals(event.body().getString("status"))) {
                        services.cleanPatterns();
                        JsonArray externalApps = event.body().getJsonArray("result");
                        for (Object o : externalApps) {
                            if (!(o instanceof JsonObject))
                                continue;
                            JsonObject j = (JsonObject) o;
                            String service = j.getString("service");
                            JsonArray patterns = j.getJsonArray("patterns");
                            if (service != null && !service.trim().isEmpty() && patterns != null
                                    && patterns.size() > 0) {
                                services.addPatterns(service, Arrays.copyOf(patterns.getList().toArray(),
                                        patterns.size(), String[].class));
                            }
                        }
                    } else {
                        log.error(event.body().getString("message"));
                    }
                }
            }));
}

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

License:Open Source License

@Override
public void configure(io.vertx.core.eventbus.EventBus eb, java.util.Map<String, Object> conf) {
    super.configure(eb, conf);
    if (conf.containsKey("academicSuffix") && conf.containsKey("academicPattern")) {
        ACADEMIC_SUFFIX.clear();/*from ww w.  jav a2  s  . c om*/

        final List<String> academicSuffixString = ((JsonArray) conf.get("academicSuffix")).getList();
        for (final String as : academicSuffixString) {
            final JsonObject jo = new JsonObject(as);
            ACADEMIC_SUFFIX.put(jo.getString("source"), jo.getString("target"));
        }

        this.academicConfPattern = (String) conf.get("academicPattern");
        this.academicPattern = Pattern.compile(academicConfPattern);
    }

    if (conf.containsKey("externalIdPrefix")) {
        this.externalIdPrefix = (String) conf.get("externalIdPrefix");
    }

}