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