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

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

Introduction

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

Prototype

public boolean containsKey(String key) 

Source Link

Document

Does the JSON object contain the specified key?

Usage

From source file:org.entcore.workspace.service.WorkspaceService.java

License:Open Source License

@Delete("/folder/:id")
@SecuredAction(value = "workspace.folder.delete", type = ActionType.AUTHENTICATED)
public void deleteFolder(final HttpServerRequest request) {
    final String id = request.params().get("id");
    if (id == null || id.trim().isEmpty()) {
        badRequest(request);/*  w  w w .j  a v a 2  s .  c o  m*/
        return;
    }
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
        @Override
        public void handle(final UserInfos userInfos) {
            if (userInfos != null) {
                folderService.delete(id, userInfos, new Handler<Either<String, JsonArray>>() {
                    @Override
                    public void handle(Either<String, JsonArray> r) {
                        if (r.isRight()) {
                            //Delete revisions for each sub-document
                            for (Object obj : r.right().getValue()) {
                                JsonObject item = (JsonObject) obj;
                                if (item.containsKey("file"))
                                    deleteAllRevisions(item.getString("_id"),
                                            new fr.wseduc.webutils.collections.JsonArray()
                                                    .add(item.getString("file")));
                            }
                            //Decrement storage
                            decrementStorage(r.right().getValue());
                            renderJson(request, new JsonObject().put("number", r.right().getValue().size()),
                                    204);
                        } else {
                            badRequest(request, r.left().getValue());
                        }
                    }
                });
            } else {
                unauthorized(request);
            }
        }
    });
}

From source file:org.entcore.workspace.service.WorkspaceService.java

License:Open Source License

private void deleteFile(final HttpServerRequest request, final GenericDao dao, String owner) {
    final String id = request.params().get("id");
    dao.findById(id, owner, new Handler<JsonObject>() {
        @Override//  www.j av  a  2s . co  m
        public void handle(JsonObject res) {
            String status = res.getString("status");
            final JsonObject result = res.getJsonObject("result");
            if ("ok".equals(status) && result != null && result.getString("file") != null) {

                final String file = result.getString("file");
                Set<Entry<String, Object>> thumbnails = new HashSet<Entry<String, Object>>();
                if (result.containsKey("thumbnails")) {
                    thumbnails = result.getJsonObject("thumbnails").getMap().entrySet();
                }

                storage.removeFile(file, new Handler<JsonObject>() {
                    @Override
                    public void handle(JsonObject event) {
                        if (event != null && "ok".equals(event.getString("status"))) {
                            dao.delete(id, new Handler<JsonObject>() {
                                @Override
                                public void handle(final JsonObject result2) {
                                    if ("ok".equals(result2.getString("status"))) {
                                        deleteAllRevisions(id,
                                                new fr.wseduc.webutils.collections.JsonArray().add(file));
                                        decrementStorage(result, new Handler<Either<String, JsonObject>>() {
                                            @Override
                                            public void handle(Either<String, JsonObject> event) {
                                                renderJson(request, result2, 204);
                                            }
                                        });
                                    } else {
                                        renderError(request, result2);
                                    }
                                }
                            });
                        } else {
                            renderError(request, event);
                        }
                    }
                });

                //Delete thumbnails
                for (final Entry<String, Object> thumbnail : thumbnails) {
                    storage.removeFile(thumbnail.getValue().toString(), new Handler<JsonObject>() {
                        public void handle(JsonObject event) {
                            if (event == null || !"ok".equals(event.getString("status"))) {
                                log.error("Error while deleting thumbnail " + thumbnail);
                            }
                        }
                    });
                }
            } else {
                request.response().setStatusCode(404).end();
            }
        }
    });
}

From source file:org.entcore.workspace.service.WorkspaceService.java

License:Open Source License

private void notifyComment(final HttpServerRequest request, final String id, final UserInfos user,
        final boolean isFolder) {
    final JsonObject params = new JsonObject()
            .put("userUri", "/userbook/annuaire#" + user.getUserId() + "#" + user.getType())
            .put("userName", user.getUsername()).put("appPrefix", pathPrefix + "/workspace");

    final String notifyName = WORKSPACE_NAME.toLowerCase() + "." + (isFolder ? "comment-folder" : "comment");

    //Retrieve the document from DB
    mongo.findOne(DocumentDao.DOCUMENTS_COLLECTION, new JsonObject().put("_id", id),
            new Handler<Message<JsonObject>>() {
                @Override/*from  ww  w . j a v  a 2 s  .  co  m*/
                public void handle(Message<JsonObject> event) {
                    if ("ok".equals(event.body().getString("status"))
                            && event.body().getJsonObject("result") != null) {
                        final JsonObject document = event.body().getJsonObject("result");
                        params.put("resourceName", document.getString("name", ""));

                        //Handle the parent folder id (null if document is at root level)
                        final Handler<String> folderIdHandler = new Handler<String>() {
                            public void handle(final String folderId) {

                                //Send the notification to the shared network
                                Handler<List<String>> shareNotificationHandler = new Handler<List<String>>() {
                                    public void handle(List<String> recipients) {
                                        JsonObject sharedNotifParams = params.copy();

                                        if (folderId != null) {
                                            sharedNotifParams.put("resourceUri",
                                                    pathPrefix + "/workspace#/shared/folder/" + folderId);
                                        } else {
                                            sharedNotifParams.put("resourceUri",
                                                    pathPrefix + "/workspace#/shared");
                                        }

                                        // don't send comment with share uri at owner
                                        final String o = document.getString("owner");
                                        if (o != null && recipients.contains(o)) {
                                            recipients.remove(o);
                                        }
                                        notification.notifyTimeline(request, notifyName, user, recipients, id,
                                                sharedNotifParams);
                                    }
                                };

                                //'Flatten' the share users & group into a user id list (excluding the current user)
                                flattenShareIds(
                                        document.getJsonArray("shared",
                                                new fr.wseduc.webutils.collections.JsonArray()),
                                        user, shareNotificationHandler);

                                //If the user commenting is not the owner, send a notification to the owner
                                if (!document.getString("owner").equals(user.getUserId())) {
                                    JsonObject ownerNotif = params.copy();
                                    ArrayList<String> ownerList = new ArrayList<>();
                                    ownerList.add(document.getString("owner"));

                                    if (folderId != null) {
                                        ownerNotif.put("resourceUri",
                                                pathPrefix + "/workspace#/folder/" + folderId);
                                    } else {
                                        ownerNotif.put("resourceUri", pathPrefix + "/workspace");
                                    }
                                    notification.notifyTimeline(request, notifyName, user, ownerList, id, null,
                                            ownerNotif, true);
                                }

                            }
                        };

                        //Handle the parent folder result from DB
                        Handler<Message<JsonObject>> folderHandler = new Handler<Message<JsonObject>>() {
                            public void handle(Message<JsonObject> event) {
                                if (!"ok".equals(event.body().getString("status"))
                                        || event.body().getJsonObject("result") == null) {
                                    log.error(
                                            "Unable to send timeline notification : invalid parent folder on resource "
                                                    + id);
                                    return;
                                }

                                final JsonObject folder = event.body().getJsonObject("result");
                                final String folderId = folder.getString("_id");

                                folderIdHandler.handle(folderId);
                            }
                        };

                        //If the document does not have a parent folder
                        if (!isFolder && !document.containsKey("folder") || isFolder
                                && document.getString("folder").equals(document.getString("name"))) {
                            folderIdHandler.handle(null);
                        } else {
                            //If the document has a parent folder
                            String parentFolderPath = document.getString("folder");
                            if (isFolder) {
                                parentFolderPath = parentFolderPath.substring(0,
                                        parentFolderPath.lastIndexOf("_"));
                            }

                            QueryBuilder query = QueryBuilder.start("folder").is(parentFolderPath).and("file")
                                    .exists(false).and("owner").is(document.getString("owner"));

                            //Retrieve the parent folder from DB
                            mongo.findOne(DocumentDao.DOCUMENTS_COLLECTION, MongoQueryBuilder.build(query),
                                    folderHandler);
                        }

                    } else {
                        log.error("Unable to send timeline notification : missing name on resource " + id);
                    }
                }
            });
}

From source file:org.etourdot.vertx.marklogic.http.impl.response.BulkResponse.java

License:Open Source License

@Override
public void process() {
    response.bodyHandler(buffer -> {// www.  jav  a  2  s  .c  o m
        final JsonObject jsonResponse = buffer.toJsonObject();
        if (jsonResponse.containsKey("documents")) {
            JsonArray docs = jsonResponse.getJsonArray("documents");
            docs.stream().forEach(doc -> documents.add(Document.create((JsonObject) doc)));
        }
        this.endHandler.handle(this);
    });
}

From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java

License:Open Source License

void saveAndTransform(JsonObject documents, TransformOptions transformOptions,
        Handler<AsyncResult<JsonArray>> resultHandler) {
    requireNonNull(documents, "documents cannot be null");
    requireNonNull(resultHandler, "resultHandler cannot be null");

    try {/*from  w  w  w.j  ava 2  s . c  o  m*/
        if (documents.containsKey(DOCUMENTS)) {
            Documents docs = new DocumentsImpl(documents);
            saveDocuments(docs, transformOptions, resultHandler);
        } else {
            final Document doc = Document.create(documents);
            save(doc, transformOptions, resultHandler);
        }
        //Future.succeededFuture();
    } catch (Exception ex) {
        Future.failedFuture(ex);
    }
}

From source file:org.folio.auth.login_module.impl.MongoAuthSource.java

@Override
public Future<Boolean> updateAuth(JsonObject credentials, JsonObject metadata, String tenant) {
    Future<Boolean> future = Future.future();
    String username = credentials.getString("username");
    JsonObject query = new JsonObject().put("username", username).put("tenant", tenant);
    JsonObject update = new JsonObject();
    String newSalt = authUtil.getSalt();
    if (credentials.containsKey("password")) {
        String password = credentials.getString("password");
        String newHash = authUtil.calculateHash(password, newSalt);
        update.put("salt", newSalt).put("hash", newHash);
    }//  www.ja  v a2 s  .c o  m
    if (metadata != null) {
        update.put("metadata", metadata);
    }
    mongoClient.updateCollection("credentials", query, update, res -> {
        if (res.succeeded()) {
            future.complete(Boolean.TRUE);
        } else {
            future.complete(Boolean.FALSE);
        }
    });

    return future;
}

From source file:org.hawkular.apm.examples.vertx.opentracing.accountmanager.AccountManagerVerticle.java

License:Apache License

private void setupConsumers() {
    logger.info("Setting up consumers");
    getVertx().eventBus().consumer("joined").handler(
            message -> logger.info(String.format("Acknowledging that %s just joined", message.body())));

    MessageConsumer<JsonObject> consumer = getVertx().eventBus().consumer("AccountManager.getAccount");
    consumer.handler(message -> {//from   w  w  w .  j ava2s . c om
        logger.finest("Handling message");
        JsonObject req = message.body();
        SpanContext spanCtx = tracer.extract(Format.Builtin.TEXT_MAP, new VertxMessageExtractAdapter(req));

        try (Span getAccountSpan = tracer.buildSpan("GetAccount").asChildOf(spanCtx).start()) {

            if (!req.containsKey("accountId")) {
                logger.warning("Account ID is missing");
                sendError(1, "Account id missing", message, getAccountSpan);
            } else {
                try (Span ignored = tracer.buildSpan("RetrieveAccount").asChildOf(getAccountSpan)
                        .withTag("database.url", "AccountsDB")
                        .withTag("database.statement", "SELECT account FROM Accounts WHERE id = ?").start()) {
                    JsonObject acct = accounts.get(req.getString("accountId"));
                    if (acct == null) {
                        logger.warning("Account not found");
                        sendError(2, "Not account found", message, getAccountSpan);
                    } else {
                        logger.fine("Account found, replying");
                        message.reply(acct);
                    }
                }
            }
        }
    }).completionHandler(result -> {
        if (result.succeeded()) {
            getVertx().eventBus().send("joined", "AccountManager.getAccount");
            logger.info("Registration has completed.");
        } else {
            logger.warning("Could not register: " + result.cause().getMessage());
        }
    });
}

From source file:org.hawkular.apm.examples.vertx.opentracing.AccountManager.java

License:Apache License

protected void init(EventBus eb, Tracer tracer) {
    accounts.put("fred", new JsonObject().put("name", "fred"));
    accounts.put("joe", new JsonObject().put("name", "joe"));
    accounts.put("jane", new JsonObject().put("name", "jane"));
    accounts.put("steve", new JsonObject().put("name", "steve"));
    accounts.put("brian", new JsonObject().put("name", "brian"));

    getAccountConsumer = eb.consumer("AccountManager.getAccount");
    getAccountConsumer.handler(message -> {
        JsonObject req = message.body();

        SpanContext spanCtx = tracer.extract(Format.Builtin.TEXT_MAP, new VertxMessageExtractAdapter(req));

        try (Span getAccountSpan = tracer.buildSpan("GetAccount").asChildOf(spanCtx)
                .withTag("service", "AccountManager").start()) {

            if (!req.containsKey("accountId")) {
                sendError(1, "Account id missing", message, getAccountSpan);
            } else {
                try (Span retrieveAccountSpan = tracer.buildSpan("RetrieveAccount").asChildOf(getAccountSpan)
                        .withTag("database.url", "AccountsDB")
                        .withTag("database.statement", "SELECT account FROM Accounts WHERE id = ?").start()) {
                    JsonObject acct = accounts.get(req.getString("accountId"));
                    if (acct == null) {
                        sendError(2, "Not account found", message, getAccountSpan);
                    } else {
                        message.reply(acct);
                    }//from w w w  .  ja  v a 2  s  . co m
                }
            }
        }
    });
}

From source file:org.hawkular.apm.examples.vertx.opentracing.inventorymanager.InventoryManagerVerticle.java

License:Apache License

private void setupConsumers() {
    logger.info("Setting up consumers");
    getVertx().eventBus().consumer("joined").handler(
            message -> logger.info(String.format("Acknowledging that %s just joined", message.body())));

    MessageConsumer<JsonObject> getItemConsumer = getVertx().eventBus().consumer("InventoryManager.getItem");
    MessageConsumer<JsonObject> ordersConfirmedConsumer = getVertx().eventBus().consumer("Orders.confirmed");

    getItemConsumer.handler(message -> {
        JsonObject req = message.body();

        SpanContext spanCtx = tracer.extract(Format.Builtin.TEXT_MAP, new VertxMessageExtractAdapter(req));

        try (Span getItemSpan = tracer.buildSpan("GetItem").asChildOf(spanCtx).start()) {

            if (!req.containsKey("itemId")) {
                message.fail(1, "Item id missing");
            } else {
                try (Span queryInventorySpan = tracer.buildSpan("QueryInventory").asChildOf(getItemSpan)
                        .withTag("database.url", "InventoryDB")
                        .withTag("database.statement", "SELECT item FROM Inventory WHERE id = ?").start()) {

                    JsonObject acct = items.get(req.getString("itemId"));
                    if (acct == null) {
                        sendError(2, "Item not found", message, getItemSpan);
                    } else {
                        message.reply(acct);
                    }/*from  w  w w  .ja v a2 s  . c o  m*/
                }
            }
        }
    }).completionHandler(result -> {
        if (result.succeeded()) {
            getVertx().eventBus().send("joined", "InventoryManager.getItem");
            logger.info("Registration has completed.");
        } else {
            logger.warning("Could not register: " + result.cause().getMessage());
        }
    });

    ordersConfirmedConsumer.handler(message -> {
        JsonObject order = message.body();

        SpanContext spanCtx = tracer.extract(Format.Builtin.TEXT_MAP, new VertxMessageExtractAdapter(order));

        try (Span orderConfirmedSpan = tracer.buildSpan("UpdateQuantity").asChildOf(spanCtx).start()) {

            try (Span queryInventorySpan = tracer.buildSpan("WriteInventory").asChildOf(orderConfirmedSpan)
                    .withTag("database.url", "InventoryDB")
                    .withTag("database.statement", "UPDATE Inventory SET item=?").start()) {
                // Update quantity and write to db
            }
        }
    }).completionHandler(result -> {
        if (result.succeeded()) {
            getVertx().eventBus().send("joined", "Orders.confirmed");
            logger.info("Registration has completed.");
        } else {
            logger.warning("Could not register: " + result.cause().getMessage());
        }
    });
}

From source file:org.hawkular.apm.examples.vertx.opentracing.InventoryManager.java

License:Apache License

protected void initGetItemConsumer(EventBus eb, Tracer tracer) {
    getItemConsumer = eb.consumer("InventoryManager.getItem");
    getItemConsumer.handler(message -> {
        JsonObject req = message.body();

        SpanContext spanCtx = tracer.extract(Format.Builtin.TEXT_MAP, new VertxMessageExtractAdapter(req));

        try (Span getItemSpan = tracer.buildSpan("GetItem").asChildOf(spanCtx)
                .withTag("service", "InventoryManager").start()) {

            if (!req.containsKey("itemId")) {
                message.fail(1, "Item id missing");
            } else {
                try (Span queryInventorySpan = tracer.buildSpan("QueryInventory").asChildOf(getItemSpan)
                        .withTag("database.url", "InventoryDB")
                        .withTag("database.statement", "SELECT item FROM Inventory WHERE id = ?").start()) {

                    JsonObject acct = items.get(req.getString("itemId"));
                    if (acct == null) {
                        sendError(2, "Item not found", message, getItemSpan);
                    } else {
                        message.reply(acct);
                    }// w ww . j ava 2s.  c  o  m
                }
            }
        }
    });
}