Example usage for io.vertx.core.eventbus Message body

List of usage examples for io.vertx.core.eventbus Message body

Introduction

In this page you can find the example usage for io.vertx.core.eventbus Message body.

Prototype

@CacheReturn
T body();

Source Link

Document

The body of the message.

Usage

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

License:Open Source License

@Put("/documents/move/:ids/:folder")
@SecuredAction(value = "workspace.manager", type = ActionType.RESOURCE)
public void moveDocuments(final HttpServerRequest request) {
    final String ids = request.params().get("ids"); // TODO refactor with json in request body
    String tempFolder = getOrElse(request.params().get("folder"), "");
    try {// w  w  w . j  a  va  2  s. c  o  m
        tempFolder = URLDecoder.decode(tempFolder, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        log.warn(e.getMessage(), e);
    }
    final String folder = tempFolder;
    final String cleanedFolder = folder.replaceAll(Pattern.quote("\\"), Matcher.quoteReplacement("\\\\"))
            .replaceAll(Pattern.quote("\""), Matcher.quoteReplacement("\\\""));

    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {

        @Override
        public void handle(UserInfos user) {
            if (user != null && user.getUserId() != null) {
                if (ids != null && !ids.trim().isEmpty()) {
                    JsonArray idsArray = new fr.wseduc.webutils.collections.JsonArray(
                            Arrays.asList(ids.split(",")));
                    final String criteria = "{ \"_id\" : { \"$in\" : " + idsArray.encode() + "}}";

                    if (folder != null && !folder.trim().isEmpty()) {

                        //If the document has a parent folder, replicate sharing rights
                        String parentName, parentFolder;
                        if (folder.lastIndexOf('_') < 0) {
                            parentName = folder;
                            parentFolder = folder;
                        } else {
                            String[] splittedPath = folder.split("_");
                            parentName = splittedPath[splittedPath.length - 1];
                            parentFolder = folder;
                        }

                        folderService.getParentRights(parentName, parentFolder, user,
                                new Handler<Either<String, JsonArray>>() {
                                    public void handle(Either<String, JsonArray> event) {
                                        final JsonArray parentSharedRights = event.right() == null
                                                || event.isLeft() ? null : event.right().getValue();

                                        String obj = "{ \"$set\" : { \"folder\": \"" + cleanedFolder
                                                + "\", \"modified\" : \"" + MongoDb.formatDate(new Date())
                                                + "\"";
                                        if (parentSharedRights != null && parentSharedRights.size() > 0)
                                            obj += ", \"shared\" : " + parentSharedRights.toString() + " }}";
                                        else
                                            obj += "}, \"$unset\" : { \"shared\": 1 }}";

                                        mongo.update(DocumentDao.DOCUMENTS_COLLECTION, new JsonObject(criteria),
                                                new JsonObject(obj), false, true,
                                                new Handler<Message<JsonObject>>() {
                                                    @Override
                                                    public void handle(Message<JsonObject> r) {
                                                        JsonObject res = r.body();
                                                        if ("ok".equals(res.getString("status"))) {
                                                            renderJson(request, res);
                                                        } else {
                                                            renderJson(request, res, 404);
                                                        }
                                                    }
                                                });
                                    }
                                });
                    } else {
                        String obj = "{ \"$set\" : { \"modified\" : \"" + MongoDb.formatDate(new Date())
                                + "\" }, " + " \"$unset\" : { \"folder\" : 1, \"shared\": 1 }}";

                        mongo.update(DocumentDao.DOCUMENTS_COLLECTION, new JsonObject(criteria),
                                new JsonObject(obj), false, true, new Handler<Message<JsonObject>>() {
                                    @Override
                                    public void handle(Message<JsonObject> r) {
                                        JsonObject res = r.body();
                                        if ("ok".equals(res.getString("status"))) {
                                            renderJson(request, res);
                                        } else {
                                            renderJson(request, res, 404);
                                        }
                                    }
                                });
                    }
                } else {
                    badRequest(request);
                }
            } else {
                unauthorized(request);
            }
        }
    });
}

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

License:Open Source License

@Get("/documents")
@SecuredAction("workspace.documents.list")
public void listDocuments(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {

        @Override//from  w w  w  .j ava 2  s.  com
        public void handle(UserInfos user) {
            if (user != null && user.getUserId() != null) {
                String filter = request.params().get("filter");
                String query = "{ ";
                String forApplication = ", \"application\": \""
                        + getOrElse(request.params().get("application"), WorkspaceService.WORKSPACE_NAME)
                        + "\"";
                if ("owner".equals(filter)) {
                    query += "\"owner\": \"" + user.getUserId() + "\"";
                } else if ("protected".equals(filter)) {
                    query += "\"owner\": \"" + user.getUserId() + "\", \"protected\":true";
                    forApplication = "";
                } else if ("public".equals(filter)) {
                    query += "\"owner\": \"" + user.getUserId() + "\", \"public\":true";
                    forApplication = "";
                } else if ("shared".equals(filter)) {
                    query += "\"owner\": { \"$ne\":\"" + user.getUserId()
                            + "\"},\"shared\" : { \"$elemMatch\" : " + orSharedElementMatch(user) + "}";
                } else {
                    query += "\"$or\" : [{ \"owner\": \"" + user.getUserId()
                            + "\"}, {\"shared\" : { \"$elemMatch\" : " + orSharedElementMatch(user) + "}}]";
                }

                if (request.params().get("hierarchical") != null) {
                    query += ", \"file\" : { \"$exists\" : true }" + forApplication
                            + ", \"folder\" : { \"$exists\" : false }}";
                } else {
                    query += ", \"file\" : { \"$exists\" : true }" + forApplication + "}";
                }
                mongo.find(DocumentDao.DOCUMENTS_COLLECTION, new JsonObject(query),
                        new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> res) {
                                String status = res.body().getString("status");
                                JsonArray results = res.body().getJsonArray("results");
                                if ("ok".equals(status) && results != null) {
                                    renderJson(request, results);
                                } else {
                                    renderJson(request, new fr.wseduc.webutils.collections.JsonArray());
                                }
                            }
                        });
            } else {
                unauthorized(request);
            }
        }
    });
}

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

License:Open Source License

@Get("/documents/:folder")
@SecuredAction("workspace.documents.list.by.folder")
public void listDocumentsByFolder(final HttpServerRequest request) {
    UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {

        @Override/*from   w ww .ja v a2 s. c  o  m*/
        public void handle(UserInfos user) {
            if (user != null && user.getUserId() != null) {
                String filter = request.params().get("filter");
                String query = "{ ";
                if ("owner".equals(filter)) {
                    query += "\"owner\": \"" + user.getUserId() + "\"";
                } else if ("shared".equals(filter)) {
                    String ownerId = request.params().get("ownerId");
                    query += "\"shared\" : { \"$elemMatch\" : " + orSharedElementMatch(user) + "}";
                    if (ownerId != null) {
                        query += ", \"owner\": \"" + ownerId + "\"";
                    }
                } else {
                    query += "\"$or\" : [{ \"owner\": \"" + user.getUserId()
                            + "\"}, {\"shared\" : { \"$elemMatch\" : " + orSharedElementMatch(user) + "}}]";
                }
                String folder = getOrElse(request.params().get("folder"), "");
                try {
                    folder = URLDecoder.decode(folder, "UTF-8");
                    folder = folder.replaceAll(Pattern.quote("\\"), Matcher.quoteReplacement("\\\\"))
                            .replaceAll(Pattern.quote("\""), Matcher.quoteReplacement("\\\""));
                } catch (UnsupportedEncodingException e) {
                    log.warn(e.getMessage(), e);
                }
                String forApplication = getOrElse(request.params().get("application"),
                        WorkspaceService.WORKSPACE_NAME);
                if (request.params().get("hierarchical") != null) {
                    query += ", \"file\" : { \"$exists\" : true }, \"application\": \"" + forApplication
                            + "\", \"folder\" : \"" + folder + "\" }";
                } else {
                    query += ", \"file\" : { \"$exists\" : true }, \"application\": \"" + forApplication
                            + "\", \"folder\" : { \"$regex\" : \"^" + folder + "(_|$)\" }}";
                }
                mongo.find(DocumentDao.DOCUMENTS_COLLECTION, new JsonObject(query),
                        new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> res) {
                                String status = res.body().getString("status");
                                JsonArray results = res.body().getJsonArray("results");
                                if ("ok".equals(status) && results != null) {
                                    renderJson(request, results);
                                } else {
                                    renderJson(request, new fr.wseduc.webutils.collections.JsonArray());
                                }
                            }
                        });
            } else {
                unauthorized(request);
            }
        }
    });
}

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

License:Open Source License

@BusAddress("org.entcore.workspace")
public void workspaceEventBusHandler(final Message<JsonObject> message) {
    switch (message.body().getString("action", "")) {
    case "addDocument":
        addDocument(message);//from  ww  w  . j  a  v a2 s  . c o m
        break;
    case "updateDocument":
        updateDocument(message);
        break;
    case "getDocument":
        getDocument(message);
        break;
    case "copyDocument":
        copyDocument(message);
        break;
    default:
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.action"));
    }
}

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

License:Open Source License

private void getDocument(final Message<JsonObject> message) {
    documentDao.findById(message.body().getString("id"), new Handler<JsonObject>() {
        @Override/*from  w w w  .java  2  s. c  o m*/
        public void handle(JsonObject res) {
            message.reply(res);
        }
    });
}

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

License:Open Source License

private void addDocument(final Message<JsonObject> message) {
    JsonObject uploaded = message.body().getJsonObject("uploaded");
    JsonObject doc = message.body().getJsonObject("document");
    if (doc == null || uploaded == null) {
        message.reply(new JsonObject().put("status", "error").put("message", "missing.attribute"));
        return;//  w w w.  ja  v a2  s . c  o  m
    }
    String name = message.body().getString("name");
    String application = message.body().getString("application");
    JsonArray t = message.body().getJsonArray("thumbs", new fr.wseduc.webutils.collections.JsonArray());
    List<String> thumbs = new ArrayList<>();
    for (int i = 0; i < t.size(); i++) {
        thumbs.add(t.getString(i));
    }
    addAfterUpload(uploaded, doc, name, application, thumbs, DocumentDao.DOCUMENTS_COLLECTION,
            new Handler<Message<JsonObject>>() {
                @Override
                public void handle(Message<JsonObject> m) {
                    if (m != null) {
                        message.reply(m.body());
                    }
                }
            });
}

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

License:Open Source License

private void updateDocument(final Message<JsonObject> message) {
    JsonObject uploaded = message.body().getJsonObject("uploaded");
    String id = message.body().getString("id");
    if (uploaded == null || id == null || id.trim().isEmpty()) {
        message.reply(new JsonObject().put("status", "error").put("message", "missing.attribute"));
        return;//www  .  j  a va 2 s  .c  o  m
    }
    String name = message.body().getString("name");
    JsonArray t = message.body().getJsonArray("thumbs", new fr.wseduc.webutils.collections.JsonArray());
    List<String> thumbs = new ArrayList<>();
    for (int i = 0; i < t.size(); i++) {
        thumbs.add(t.getString(i));
    }
    updateAfterUpload(id, name, uploaded, thumbs, null, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(Message<JsonObject> m) {
            if (m != null) {
                message.reply(m.body());
            }
        }
    });
}

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

License:Open Source License

public void copyDocument(final Message<JsonObject> message) {
    emptySize(message.body().getJsonObject("user").getString("userId"), new Handler<Long>() {
        @Override/*from   w w  w .jav  a 2  s .c  o m*/
        public void handle(Long emptySize) {
            copyFile(message.body(), documentDao, emptySize, new Handler<JsonObject>() {
                @Override
                public void handle(JsonObject res) {
                    if ("ok".equals(res.getString("status")))
                        message.reply(res);
                    else
                        message.fail(500, res.getString("status"));
                }
            });
        }
    });
}

From source file:org.hawkular.metrics.clients.ptrans.backend.MetricsSender.java

License:Apache License

private void handleMetric(Message<SingleMetric> metricMessage) {
    buffer.insert(metricMessage.body());
    metricInserted();
}

From source file:org.jberet.vertx.cluster.PartitionVerticle.java

License:Open Source License

@Override
public void start() throws Exception {
    final JobOperatorImpl jobOperator = new JobOperatorImpl();
    final BatchEnvironment batchEnvironment = jobOperator.getBatchEnvironment();
    final JobRepository jobRepository = jobOperator.getJobRepository();
    final ArtifactFactoryWrapper artifactFactory = new ArtifactFactoryWrapper(
            batchEnvironment.getArtifactFactory());

    final EventBus eventBus = vertx.eventBus();
    final Handler<Message<Buffer>> receivingPartitionHandler = new Handler<Message<Buffer>>() {
        public void handle(Message<Buffer> message) {
            Buffer body = message.body();
            final byte[] bytes = body.getBytes();
            final PartitionInfo partitionInfo;
            try {
                partitionInfo = (PartitionInfo) BatchUtil.bytesToSerializableObject(bytes,
                        batchEnvironment.getClassLoader());
            } catch (Exception e) {
                throw VertxClusterMessages.MESSAGES.failedToReceivePartitionInfo(e);
            }/*from w ww  .j ava2s  .c  o m*/

            final JobExecutionImpl jobExecution = partitionInfo.getJobExecution();
            final Step step = partitionInfo.getStep();
            final PartitionExecutionImpl partitionExecution = partitionInfo.getPartitionExecution();
            final String stopRequestTopicName = PartitionInfo
                    .getStopRequestTopicName(jobExecution.getExecutionId());
            eventBus.consumer(stopRequestTopicName, new Handler<Message<Boolean>>() {
                @Override
                public void handle(final Message<Boolean> stopMessage) {
                    VertxClusterLogger.LOGGER.receivedStopRequest(jobExecution.getExecutionId(), step.getId(),
                            partitionExecution.getStepExecutionId(), partitionExecution.getPartitionId());
                    jobExecution.stop();
                }
            });

            VertxClusterLogger.LOGGER.receivedPartitionInfo(partitionInfo);
            final JobContextImpl jobContext = new JobContextImpl(jobExecution, null, artifactFactory,
                    jobRepository, batchEnvironment);

            final VertxPartitionWorker partitionWorker = new VertxPartitionWorker(eventBus);
            final AbstractContext[] outerContext = { jobContext };
            final StepContextImpl stepContext = new StepContextImpl(step, partitionExecution, outerContext);

            final AbstractRunner<StepContextImpl> runner;
            final Chunk chunk = step.getChunk();
            if (chunk == null) {
                runner = new BatchletRunner(stepContext, null, step.getBatchlet(), partitionWorker);
            } else {
                runner = new ChunkRunner(stepContext, null, chunk, null, partitionWorker);
            }
            batchEnvironment.submitTask(runner);
        }
    };
    eventBus.consumer(PartitionInfo.PARTITION_QUEUE, receivingPartitionHandler);
}