List of usage examples for io.vertx.core.json JsonObject getString
public String getString(String key)
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
private void callFindVisibles(UserInfos user, final String acceptLanguage, final Handler<Either<String, JsonObject>> result, final JsonObject visible, JsonObject params, String preFilter, String customReturn) { findVisibles(eb, user.getUserId(), customReturn, params, true, true, false, acceptLanguage, preFilter, new Handler<JsonArray>() { @Override//from ww w . ja v a 2 s . c o m public void handle(JsonArray visibles) { JsonArray users = new fr.wseduc.webutils.collections.JsonArray(); JsonArray groups = new fr.wseduc.webutils.collections.JsonArray(); visible.put("groups", groups).put("users", users); for (Object o : visibles) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; if (j.getString("name") != null) { j.remove("displayName"); UserUtils.groupDisplayName(j, acceptLanguage); groups.add(j); } else { j.remove("name"); users.add(j); } } result.handle(new Either.Right<String, JsonObject>(visible)); } }); }
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
@Override public void updateFolder(String folderId, JsonObject data, UserInfos user, Handler<Either<String, JsonObject>> result) { if (validationParamsError(user, result, data.getString("name"))) return;/*from w ww . j a va 2s . c o m*/ String query = "UPDATE " + folderTable + " AS f " + "SET name = ? " + "WHERE f.id = ? AND f.user_id = ?"; JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(data.getString("name")).add(folderId) .add(user.getUserId()); sql.prepared(query, values, SqlResult.validUniqueResultHandler(result)); }
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
@Override public void addAttachment(String messageId, UserInfos user, JsonObject uploaded, Handler<Either<String, JsonObject>> result) { if (validationParamsError(user, result, messageId)) return;//from w w w . j a v a 2 s. c o m long attachmentSize = uploaded.getJsonObject("metadata", new JsonObject()).getLong("size", 0l); SqlStatementsBuilder builder = new SqlStatementsBuilder(); JsonObject attParams = new JsonObject().put("id", uploaded.getString("_id")) .put("name", uploaded.getJsonObject("metadata").getString("name")) .put("filename", uploaded.getJsonObject("metadata").getString("filename")) .put("contentType", uploaded.getJsonObject("metadata").getString("content-type")) .put("contentTransferEncoding", uploaded.getJsonObject("metadata").getString("content-transfer-encoding")) .put("charset", uploaded.getJsonObject("metadata").getString("charset")) .put("size", attachmentSize); builder.insert(attachmentTable, attParams, "id"); JsonObject umaParams = new JsonObject().put("user_id", user.getUserId()).put("message_id", messageId) .put("attachment_id", uploaded.getString("_id")); builder.insert(userMessageAttachmentTable, umaParams); String query = "UPDATE " + userMessageTable + " AS um " + "SET total_quota = total_quota + ? " + "WHERE um.user_id = ? AND um.message_id = ?"; JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(attachmentSize).add(user.getUserId()) .add(messageId); builder.prepared(query, values); sql.transaction(builder.build(), SqlResult.validUniqueResultHandler(0, result)); }
From source file:org.entcore.conversation.service.impl.SqlConversationService.java
License:Open Source License
@Override public void removeAttachment(String messageId, String attachmentId, UserInfos user, final Handler<Either<String, JsonObject>> result) { if (validationParamsError(user, result, messageId, attachmentId)) return;/*from w w w . j ava2 s. co m*/ SqlStatementsBuilder builder = new SqlStatementsBuilder(); JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(messageId).add(user.getUserId()) .add(attachmentId); String query1 = "SELECT att.* FROM " + attachmentTable + " att WHERE att.id = ?"; builder.prepared(query1, new fr.wseduc.webutils.collections.JsonArray().add(attachmentId)); String query2 = "SELECT (count(*) = 1) AS deletionCheck FROM " + attachmentTable + " att JOIN " + userMessageAttachmentTable + " uma ON uma.attachment_id = att.id " + "WHERE att.id = ? " + "GROUP BY att.id HAVING count(distinct uma.user_id) = 1 AND count(distinct uma.message_id) = 1"; builder.prepared(query2, new fr.wseduc.webutils.collections.JsonArray().add(attachmentId)); String query3 = "WITH attachment AS (" + query1 + ") " + "UPDATE " + userMessageTable + " AS um " + "SET total_quota = um.total_quota - (SELECT SUM(DISTINCT attachment.size) FROM attachment) " + "WHERE um.message_id = ? AND um.user_id = ?"; JsonArray values3 = new fr.wseduc.webutils.collections.JsonArray().add(attachmentId).add(messageId) .add(user.getUserId()); builder.prepared(query3, values3); String query4 = "DELETE FROM " + userMessageAttachmentTable + " WHERE " + "message_id = ? AND user_id = ? AND attachment_id = ?"; builder.prepared(query4, values); sql.transaction(builder.build(), SqlResult.validResultsHandler(new Handler<Either<String, JsonArray>>() { public void handle(Either<String, JsonArray> event) { if (event.isLeft()) { result.handle(new Either.Left<String, JsonObject>(event.left().getValue())); return; } else { JsonArray results = event.right().getValue(); JsonObject attachment = results.getJsonArray(0).getJsonObject(0); boolean deletionCheck = results.getJsonArray(1).size() > 0 ? results.getJsonArray(1).getJsonObject(0).getBoolean("deletioncheck", false) : false; JsonObject resultJson = new JsonObject().put("deletionCheck", deletionCheck) .put("fileId", attachment.getString("id")).put("fileSize", attachment.getLong("size")); result.handle(new Either.Right<String, JsonObject>(resultJson)); } } })); }
From source file:org.entcore.directory.controllers.DirectoryController.java
License:Open Source License
@Post("/api/user") @SecuredAction(value = "", type = ActionType.RESOURCE) @IgnoreCsrf/* w w w . j av a2 s . co m*/ public void createUser(final HttpServerRequest request) { request.setExpectMultipart(true); request.endHandler(new Handler<Void>() { @Override public void handle(Void v) { final String classId = request.formAttributes().get("classId"); final String structureId = request.formAttributes().get("structureId"); if ((classId == null || classId.trim().isEmpty()) && (structureId == null || structureId.trim().isEmpty())) { badRequest(request); return; } JsonObject user = new JsonObject().put("firstName", request.formAttributes().get("firstname")) .put("lastName", request.formAttributes().get("lastname")) .put("type", request.formAttributes().get("type")); String birthDate = request.formAttributes().get("birthDate"); if (birthDate != null && !birthDate.trim().isEmpty()) { user.put("birthDate", birthDate); } List<String> childrenIds = request.formAttributes().getAll("childrenIds"); user.put("childrenIds", new fr.wseduc.webutils.collections.JsonArray(childrenIds)); if (classId != null && !classId.trim().isEmpty()) { userService.createInClass(classId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> res) { if (res.isRight() && res.right().getValue().size() > 0) { JsonObject r = res.right().getValue(); JsonArray a = new fr.wseduc.webutils.collections.JsonArray().add(r.getString("id")); ApplicationUtils.sendModifiedUserGroup(eb, a, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { schoolService.getByClassId(classId, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> s) { if (s.isRight()) { JsonObject j = new JsonObject() .put("action", "setDefaultCommunicationRules") .put("schoolId", s.right().getValue() .getString("id")); eb.send("wse.communication", j); } } }); } })); renderJson(request, r); } else { leftToResponse(request, res.left()); } } }); } else { userService.createInStructure(structureId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> res) { if (res.isRight() && res.right().getValue().size() > 0) { JsonObject r = res.right().getValue(); JsonArray a = new fr.wseduc.webutils.collections.JsonArray().add(r.getString("id")); ApplicationUtils.sendModifiedUserGroup(eb, a, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { JsonObject j = new JsonObject() .put("action", "setDefaultCommunicationRules") .put("schoolId", structureId); eb.send("wse.communication", j); } })); renderJson(request, r); } else { leftToResponse(request, res.left()); } } }); } } }); }
From source file:org.entcore.directory.controllers.GroupController.java
License:Open Source License
@Post("/group") @SecuredAction(value = "", type = ActionType.RESOURCE) public void create(final HttpServerRequest request) { bodyToJson(request, pathPrefix + "createManualGroup", new Handler<JsonObject>() { @Override//from w ww . j a va2s.co m public void handle(JsonObject body) { final String structureId = body.getString("structureId"); final String classId = body.getString("classId"); body.remove("structureId"); body.remove("classId"); groupService.createOrUpdateManual(body, structureId, classId, notEmptyResponseHandler(request, 201)); } }); }
From source file:org.entcore.directory.controllers.ImportController.java
License:Open Source License
@Post("/import/:userType/class/:classId") @ResourceFilter(TeacherOfClass.class) @SecuredAction(value = "", type = ActionType.RESOURCE) public void doClassImport(final HttpServerRequest request) { request.pause();//from w w w.j av a2 s . com schoolService.getByClassId(request.params().get("classId"), new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> s) { if (s.isRight()) { final JsonObject structure = s.right().getValue(); request.setExpectMultipart(true); request.formAttributes().add("structureId", structure.getString("id")); request.formAttributes().add("structureExternalId", structure.getString("externalId")); request.formAttributes().add("predelete", "false"); request.formAttributes().add("transition", "false"); request.formAttributes().add("structureName", structure.getString("name")); request.formAttributes().add("UAI", structure.getString("UAI")); request.formAttributes().add("type", "CSV"); request.resume(); uploadImport(request, new Handler<AsyncResult<ImportInfos>>() { @Override public void handle(final AsyncResult<ImportInfos> event) { if (event.succeeded()) { importService.doImport(event.result(), reportResponseHandler(vertx, event.result().getPath(), request)); } else { badRequest(request, event.cause().getMessage()); } } }); } else { notFound(request, "class.not.found"); } } }); }
From source file:org.entcore.directory.controllers.ProfileController.java
License:Open Source License
@Post("/functiongroup") @SecuredAction("profile.create.function.group") public void createFunctionGroup(final HttpServerRequest request) { bodyToJson(request, pathPrefix + "createFunctionGroup", new Handler<JsonObject>() { @Override// w w w. j a v a 2 s . c o m public void handle(JsonObject event) { profileService.createFunctionGroup(event.getJsonArray("functionsCodes"), event.getString("name"), event.getString("externalId"), notEmptyResponseHandler(request, 201)); } }); }
From source file:org.entcore.directory.controllers.StructureController.java
License:Open Source License
private void massMailTypePdf(final HttpServerRequest request, final String templatePath, final String baseUrl, final String filename, final JsonArray users) { final JsonObject templateProps = new JsonObject().put("users", users); vertx.fileSystem().readFile(templatePath + "massmail.pdf.xhtml", new Handler<AsyncResult<Buffer>>() { @Override/* ww w . j a va 2s .c o m*/ public void handle(AsyncResult<Buffer> result) { if (!result.succeeded()) { badRequest(request); return; } StringReader reader = new StringReader(result.result().toString("UTF-8")); processTemplate(request, templateProps, "massmail.pdf.xhtml", reader, new Handler<Writer>() { public void handle(Writer writer) { String processedTemplate = ((StringWriter) writer).getBuffer().toString(); if (processedTemplate == null) { badRequest(request); return; } JsonObject actionObject = new JsonObject(); actionObject.put("content", processedTemplate.getBytes()).put("baseUrl", baseUrl); eb.send(node + "entcore.pdf.generator", actionObject, new DeliveryOptions().setSendTimeout(600000l), handlerToAsyncHandler(new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> reply) { JsonObject pdfResponse = reply.body(); if (!"ok".equals(pdfResponse.getString("status"))) { badRequest(request, pdfResponse.getString("message")); return; } byte[] pdf = pdfResponse.getBinary("content"); request.response().putHeader("Content-Type", "application/pdf"); request.response().putHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf"); request.response().end(Buffer.buffer(pdf)); } })); } }); } }); }
From source file:org.entcore.directory.controllers.StructureController.java
License:Open Source License
private void massMailTypeMail(final HttpServerRequest request, final String templatePath, final JsonArray users) { vertx.fileSystem().readFile(templatePath + "massmail.mail.txt", new Handler<AsyncResult<Buffer>>() { @Override//from ww w .j av a 2 s . c o m public void handle(AsyncResult<Buffer> result) { if (!result.succeeded()) { badRequest(request); return; } StringReader reader = new StringReader(result.result().toString("UTF-8")); final JsonArray mailHeaders = new JsonArray().add( new JsonObject().put("name", "Content-Type").put("value", "text/html; charset=\"UTF-8\"")); for (Object userObj : users) { final JsonObject user = (JsonObject) userObj; final String userMail = user.getString("email"); if (userMail == null || userMail.trim().isEmpty()) { continue; } final String mailTitle = !user.containsKey("activationCode") || user.getString("activationCode") == null || user.getString("activationCode").trim().isEmpty() ? "directory.massmail.mail.subject.activated" : "directory.massmail.mail.subject.not.activated"; try { reader.reset(); } catch (IOException exc) { log.error("[MassMail] Error on StringReader (" + exc.toString() + ")"); } processTemplate(request, user, "massmail.mail.txt", reader, new Handler<Writer>() { public void handle(Writer writer) { String processedTemplate = ((StringWriter) writer).getBuffer().toString(); if (processedTemplate == null) { badRequest(request); return; } notifHelper.sendEmail(request, userMail, null, null, mailTitle, processedTemplate, null, true, mailHeaders, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { if ("error".equals(event.body().getString("status"))) { log.error("[MassMail] Error while sending mail (" + event.body().getString("message", "") + ")"); } } })); } }); } ok(request); } }); }