List of usage examples for io.vertx.core.json JsonObject containsKey
public boolean containsKey(String key)
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 } } } }); }