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

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

Introduction

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

Prototype

public JsonObject() 

Source Link

Document

Create a new, empty instance

Usage

From source file:examples.VertxAmqpBridgeExamples.java

License:Apache License

public void example11(MessageConsumer<JsonObject> consumer) {
    consumer.handler(msg -> {//from w  ww.j av  a2 s  .  com
        // ...do something with received message...then reply...
        String replyAddress = msg.replyAddress();
        if (replyAddress != null) {
            JsonObject amqpReplyMessagePayload = new JsonObject();
            amqpReplyMessagePayload.put("body", "myResponse");

            msg.reply(amqpReplyMessagePayload);
        }
    });
}

From source file:fr.pjthin.vertx.client.UserDaoVertxEBProxy.java

License:Apache License

public void save(User newUser, Handler<AsyncResult<String>> complete) {
    if (closed) {
        complete.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return;//from  w ww .ja  va  2 s.  c o m
    }
    JsonObject _json = new JsonObject();
    _json.put("newUser", newUser == null ? null : newUser.toJson());
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "save");
    _vertx.eventBus().<String>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            complete.handle(Future.failedFuture(res.cause()));
        } else {
            complete.handle(Future.succeededFuture(res.result().body()));
        }
    });
}

From source file:fr.pjthin.vertx.client.UserDaoVertxEBProxy.java

License:Apache License

public void findAll(Handler<AsyncResult<List<User>>> complete) {
    if (closed) {
        complete.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return;//ww  w . ja va 2s  . c  o m
    }
    JsonObject _json = new JsonObject();
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "findAll");
    _vertx.eventBus().<JsonArray>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            complete.handle(Future.failedFuture(res.cause()));
        } else {
            complete.handle(Future.succeededFuture(res.result().body().stream()
                    .map(o -> o instanceof Map ? new User(new JsonObject((Map) o)) : new User((JsonObject) o))
                    .collect(Collectors.toList())));
        }
    });
}

From source file:fr.pjthin.vertx.client.UserDaoVertxEBProxy.java

License:Apache License

public void findUserByLogin(String login, Handler<AsyncResult<User>> complete) {
    if (closed) {
        complete.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return;//from  www .ja v a2 s .  c o  m
    }
    JsonObject _json = new JsonObject();
    _json.put("login", login);
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "findUserByLogin");
    _vertx.eventBus().<JsonObject>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            complete.handle(Future.failedFuture(res.cause()));
        } else {
            complete.handle(
                    Future.succeededFuture(res.result().body() == null ? null : new User(res.result().body())));
        }
    });
}

From source file:fr.pjthin.vertx.client.UserDaoVertxEBProxy.java

License:Apache License

public void deleteByLogin(String login, Handler<AsyncResult<Void>> complete) {
    if (closed) {
        complete.handle(Future.failedFuture(new IllegalStateException("Proxy is closed")));
        return;/*ww w  .j  av  a  2 s .c  o  m*/
    }
    JsonObject _json = new JsonObject();
    _json.put("login", login);
    DeliveryOptions _deliveryOptions = (_options != null) ? new DeliveryOptions(_options)
            : new DeliveryOptions();
    _deliveryOptions.addHeader("action", "deleteByLogin");
    _vertx.eventBus().<Void>send(_address, _json, _deliveryOptions, res -> {
        if (res.failed()) {
            complete.handle(Future.failedFuture(res.cause()));
        } else {
            complete.handle(Future.succeededFuture(res.result().body()));
        }
    });
}

From source file:fr.wseduc.pages.controllers.PagesController.java

License:Open Source License

@Get("/p/website")
public void websiteView(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new io.vertx.core.Handler<UserInfos>() {
        @Override/*from   ww  w.j av  a2  s.c  o  m*/
        public void handle(UserInfos user) {
            JsonObject context = new JsonObject().put("notLoggedIn", user == null);
            renderView(request, context, "website.html", null);
        }
    });
}

From source file:fr.wseduc.pages.controllers.PagesController.java

License:Open Source License

@Put("/share/json/:id")
@ApiDoc("Share a page.")
@SecuredAction(value = "page.manager", type = ActionType.RESOURCE)
public void shareSubmit(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override/*from   ww  w  .j a v a2  s  .  com*/
        public void handle(final UserInfos user) {
            if (user != null) {
                final String id = request.params().get("id");
                if (id == null || id.trim().isEmpty()) {
                    badRequest(request, "invalid.id");
                    return;
                }

                JsonObject params = new JsonObject()
                        .put("uri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType())
                        .put("username", user.getUsername()).put("pageUri", "/pages#/website/" + id);
                params.put("resourceUri", params.getString("pageUri"));

                JsonObject pushNotif = new JsonObject().put("title", "pages.push.notif.shared").put("body",
                        I18n.getInstance().translate("pages.push.notif.shared.body", getHost(request),
                                I18n.acceptLanguage(request), user.getUsername()));
                params.put("pushNotif", pushNotif);

                shareJsonSubmit(request, "pages.shared", false, params, "title");
            }
        }
    });
}

From source file:fr.wseduc.pages.controllers.PagesController.java

License:Open Source License

@Put("/share/resource/:id")
@ApiDoc("Share a page.")
@SecuredAction(value = "page.manager", type = ActionType.RESOURCE)
public void shareResource(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override// w ww .j  a v a  2  s .  c  o  m
        public void handle(final UserInfos user) {
            if (user != null) {
                final String id = request.params().get("id");
                if (id == null || id.trim().isEmpty()) {
                    badRequest(request, "invalid.id");
                    return;
                }

                JsonObject params = new JsonObject()
                        .put("uri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType())
                        .put("username", user.getUsername()).put("pageUri", "/pages#/website/" + id);
                params.put("resourceUri", params.getString("pageUri"));

                shareResource(request, "pages.shared", false, params, "title");
            }
        }
    });
}

From source file:fr.wseduc.pages.controllers.PagesController.java

License:Open Source License

@BusAddress("pages")
public void busApi(Message<JsonObject> message) {
    String action = message.body().getString("action", "");
    final String pageId = message.body().getString("pageId");
    switch (action) {
    case "create":
        UserInfos user = UserUtils.sessionToUserInfos(message.body().getJsonObject("user"));
        JsonObject page = message.body().getJsonObject("page");
        crudService.create(page, user, busResponseHandler(message));
        break;/*from  w ww  . j  a  v a2s .c  o  m*/
    case "share":
        String userId = message.body().getString("userId");
        String groupId = message.body().getString("groupId");
        List<String> actions = message.body().getJsonArray("actions").getList();
        shareService.groupShare(userId, groupId, pageId, actions, busResponseHandler(message));
        break;
    case "delete":
        crudService.delete(pageId, busResponseHandler(message));
        break;
    case "get":
        crudService.retrieve(pageId, busResponseHandler(message));
        break;
    case "update":
        crudService.update(pageId, message.body().getJsonObject("page"), busResponseHandler(message));
        break;
    default:
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.action"));
    }
}

From source file:fr.wseduc.rack.controllers.RackController.java

License:Open Source License

/**
 * Post a new document to other people's rack folder.
 * @param request Client request containing a list of user ids belonging to the receivers and the file.
 *//*from   ww  w. jav  a  2 s  .  c o  m*/
@Post("")
@SecuredAction(send)
public void postRack(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override
        public void handle(final UserInfos userInfos) {

            if (userInfos == null) {
                badRequest(request);
                return;
            }

            request.setExpectMultipart(true);
            final Buffer fileBuffer = Buffer.buffer();
            final JsonObject metadata = new JsonObject();

            /* Upload file */
            request.uploadHandler(getUploadHandler(fileBuffer, metadata, request));

            /* After upload */
            request.endHandler(new Handler<Void>() {
                @Override
                public void handle(Void v) {
                    String users = request.formAttributes().get("users");
                    if (users == null) {
                        badRequest(request);
                        return;
                    }

                    String[] userIds = users.split(",");

                    final AtomicInteger countdown = new AtomicInteger(userIds.length);
                    final AtomicInteger success = new AtomicInteger(0);
                    final AtomicInteger failure = new AtomicInteger(0);

                    /* Final handler - called after each attempt */
                    final Handler<Boolean> finalHandler = new Handler<Boolean>() {
                        @Override
                        public void handle(Boolean event) {
                            if (event == null || !event)
                                failure.addAndGet(1);
                            else
                                success.addAndGet(1);
                            if (countdown.decrementAndGet() == 0) {
                                JsonObject result = new JsonObject();
                                result.put("success", success.get());
                                result.put("failure", failure.get());
                                renderJson(request, result);
                            }
                        }
                    };

                    for (final String to : userIds) {
                        /* Query user and check existence */
                        String query = "MATCH (n:User) " + "WHERE n.id = {id} "
                                + "RETURN count(n) as nb, n.displayName as username";
                        Map<String, Object> params = new HashMap<>();
                        params.put("id", to);

                        Handler<Message<JsonObject>> existenceHandler = new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> res) {
                                JsonArray result = res.body().getJsonArray("result");

                                if (!"ok".equals(res.body().getString("status")) || 1 != result.size()
                                        || 1 != result.getJsonObject(0).getInteger("nb")) {
                                    finalHandler.handle(false);
                                    return;
                                }

                                /* Pre write rack document fields */
                                final JsonObject doc = new JsonObject();
                                doc.put("to", to);
                                doc.put("toName", result.getJsonObject(0).getString("username"));
                                doc.put("from", userInfos.getUserId());
                                doc.put("fromName", userInfos.getUsername());
                                String now = dateFormat.format(new Date());
                                doc.put("sent", now);

                                /* Rack collection saving */
                                final Handler<JsonObject> rackSaveHandler = new Handler<JsonObject>() {
                                    @Override
                                    public void handle(JsonObject uploaded) {
                                        if (uploaded == null || !"ok".equals(uploaded.getString("status"))) {
                                            finalHandler.handle(false);
                                        } else {
                                            addAfterUpload(uploaded.put("metadata", metadata), doc,
                                                    request.params().get("name"),
                                                    request.params().get("application"),
                                                    request.params().getAll("thumbnail"),
                                                    new Handler<Message<JsonObject>>() {
                                                        @Override
                                                        public void handle(Message<JsonObject> res) {
                                                            if ("ok".equals(res.body().getString("status"))) {
                                                                JsonObject params = new JsonObject()
                                                                        .put("uri",
                                                                                "/userbook/annuaire#"
                                                                                        + doc.getString("from"))
                                                                        .put("resourceUri", pathPrefix)
                                                                        .put("username",
                                                                                doc.getString("fromName"))
                                                                        .put("documentName",
                                                                                doc.getString("name"));
                                                                List<String> receivers = new ArrayList<>();
                                                                receivers.add(doc.getString("to"));

                                                                JsonObject pushNotif = new JsonObject()
                                                                        .put("title",
                                                                                "rack.push.notif.rack-post")
                                                                        .put("body",
                                                                                I18n.getInstance().translate(
                                                                                        "rack.push.notif.rack-post.body",
                                                                                        getHost(request),
                                                                                        I18n.acceptLanguage(
                                                                                                request),
                                                                                        doc.getString(
                                                                                                "fromName"),
                                                                                        doc.getString("name")));
                                                                params.put("pushNotif", pushNotif);

                                                                timelineHelper.notifyTimeline(request,
                                                                        "rack.rack-post", userInfos, receivers,
                                                                        userInfos.getUserId()
                                                                                + System.currentTimeMillis()
                                                                                + "postrack",
                                                                        null, params, true);
                                                                finalHandler.handle(true);
                                                            } else {
                                                                finalHandler.handle(false);
                                                            }
                                                        }
                                                    });
                                        }
                                    }
                                };

                                /* Get user quota & check */
                                getUserQuota(to, new Handler<JsonObject>() {
                                    @Override
                                    public void handle(JsonObject j) {
                                        if (j == null || "error".equals(j.getString("status"))) {
                                            finalHandler.handle(false);
                                            return;
                                        }

                                        long emptySize = 0l;
                                        long quota = j.getLong("quota", 0l);
                                        long storage = j.getLong("storage", 0l);
                                        emptySize = quota - storage;
                                        if (emptySize < metadata.getLong("size", 0l)) {
                                            finalHandler.handle(false);
                                            return;
                                        }
                                        //Save file
                                        RackController.this.storage.writeBuffer(fileBuffer,
                                                metadata.getString("content-type"), metadata.getString("name"),
                                                rackSaveHandler);
                                    }
                                });

                            }
                        };
                        Neo4j.getInstance().execute(query, params, existenceHandler);
                    }
                }
            });
        }
    });
}