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

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

Introduction

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

Prototype

default void reply(@Nullable Object message) 

Source Link

Document

Reply to this message.

Usage

From source file:org.entcore.feeder.ManualFeeder.java

License:Open Source License

private void executeTransaction(final Message<JsonObject> message, VoidFunction<TransactionHelper> f) {
    TransactionHelper tx;//from www .j av  a  2s  . co  m
    try {
        tx = TransactionManager.getInstance().begin();
        f.apply(tx);
        tx.commit(new Handler<Message<JsonObject>>() {
            @Override
            public void handle(Message<JsonObject> event) {
                message.reply(event.body());
            }
        });
    } catch (TransactionException | ValidationException e) {
        sendError(message, e.getMessage(), e);
    }
}

From source file:org.entcore.feeder.ManualFeeder.java

License:Open Source License

public void updateStructure(final Message<JsonObject> message) {
    JsonObject s = getMandatoryObject("data", message);
    if (s == null)
        return;//  w  w w  . ja  v a2  s. c o  m
    String structureId = getMandatoryString("structureId", message);
    if (structureId == null)
        return;
    final String error = structureValidator.modifiableValidate(s);
    if (error != null) {
        logger.error(error);
        sendError(message, error);
    } else {
        String query;
        JsonObject params = s.copy().put("structureId", structureId);
        if (s.getString("name") != null) {
            query = "MATCH (s:`Structure` { id : {structureId}})<-[:DEPENDS]-(g:Group) "
                    + "WHERE last(split(g.name, '-')) IN ['Student','Teacher','Personnel','Relative','Guest','AdminLocal','HeadTeacher', 'SCOLARITE'] "
                    + "SET g.name = {name} + '-' + last(split(g.name, '-')), g.displayNameSearchField = {sanitizeName}, ";
            params.put("sanitizeName", Validator.sanitize(s.getString("name")));
        } else {
            query = "MATCH (s:`Structure` { id : {structureId}}) SET";

        }
        query = query + Neo4jUtils.nodeSetPropertiesFromJson("s", s) + "RETURN DISTINCT s.id as id ";

        neo4j.execute(query, params, new Handler<Message<JsonObject>>() {
            @Override
            public void handle(Message<JsonObject> m) {
                message.reply(m.body());
            }
        });
    }
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

public static void initStructure(final EventBus eb, final Message<JsonObject> message) {
    final JsonObject conf = message.body().getJsonObject("conf");
    if (conf == null) {
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.conf"));
        return;//  ww w.  ja  v  a  2 s.  com
    }
    final String query = "MATCH (s:Structure {id:{structureId}}) "
            + "RETURN (NOT(HAS(s.timetable)) OR s.timetable <> {type}) as update ";
    TransactionManager.getNeo4jHelper().execute(query, conf, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(final Message<JsonObject> event) {
            final JsonArray j = event.body().getJsonArray("result");
            if ("ok".equals(event.body().getString("status")) && j != null && j.size() == 1
                    && j.getJsonObject(0).getBoolean("update", false)) {
                try {
                    TransactionHelper tx = TransactionManager.getTransaction();
                    final String q1 = "MATCH (s:Structure {id : {structureId}})<-[:DEPENDS]-(fg:FunctionalGroup) "
                            + "WHERE NOT(HAS(s.timetable)) OR s.timetable <> {type} "
                            + "OPTIONAL MATCH fg<-[:IN]-(u:User) "
                            + "RETURN fg.id as group, fg.name as groupName, collect(u.id) as users ";
                    final String q2 = "MATCH (s:Structure {id: {structureId}}) "
                            + "WHERE NOT(HAS(s.timetable)) OR s.timetable <> {type} "
                            + "SET s.timetable = {typeUpdate} " + "WITH s "
                            + "MATCH s<-[:DEPENDS]-(fg:FunctionalGroup), s<-[:SUBJECT]-(sub:Subject) "
                            + "DETACH DELETE fg, sub ";
                    final String q3 = "MATCH (s:Structure {id: {structureId}})<-[:MAPPING]-(cm:ClassesMapping) "
                            + "DETACH DELETE cm";
                    tx.add(q1, conf);
                    tx.add(q2, (isEmpty(conf.getString("type")) ? conf.putNull("typeUpdate")
                            : conf.put("typeUpdate", conf.getString("type"))));
                    tx.add(q3, conf);
                    tx.commit(new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> res) {
                            if ("ok".equals(res.body().getString("status"))) {
                                final JsonArray r = res.body().getJsonArray("results");
                                if (r != null && r.size() == 2) {
                                    Transition.publishDeleteGroups(eb, log, r.getJsonArray(0));
                                }
                                final JsonObject matcher = new JsonObject().put("structureId",
                                        conf.getString("structureId"));
                                MongoDb.getInstance().delete(COURSES, matcher,
                                        new Handler<Message<JsonObject>>() {
                                            @Override
                                            public void handle(Message<JsonObject> mongoResult) {
                                                if (!"ok".equals(mongoResult.body().getString("status"))) {
                                                    log.error("Error deleting courses : "
                                                            + mongoResult.body().getString("message"));
                                                }
                                                message.reply(event.body());
                                            }
                                        });
                            } else {
                                message.reply(res.body());
                            }
                        }
                    });
                } catch (TransactionException e) {
                    log.error("Transaction error when init timetable structure", e);
                    message.reply(new JsonObject().put("status", "error").put("message", e.getMessage()));
                }
            } else {
                message.reply(event.body());
            }
        }
    });
}

From source file:org.entcore.feeder.timetable.edt.EDTImporter.java

License:Open Source License

public static void launchImport(EDTUtils edtUtils, final String mode, final Message<JsonObject> message,
        final PostImport postImport) {
    final I18n i18n = I18n.getInstance();
    final String acceptLanguage = message.body().getString("language", "fr");
    if (edtUtils == null) {
        JsonObject json = new JsonObject().put("status", "error").put("message",
                i18n.translate("invalid.edt.key", I18n.DEFAULT_DOMAIN, acceptLanguage));
        message.reply(json);
        return;//w ww  .j av a 2s.  c o m
    }
    final String uai = message.body().getString("UAI");
    final String path = message.body().getString("path");

    if (isEmpty(uai) || isEmpty(path) || isEmpty(acceptLanguage)) {
        JsonObject json = new JsonObject().put("status", "error").put("message",
                i18n.translate("invalid.params", I18n.DEFAULT_DOMAIN, acceptLanguage));
        message.reply(json);
    }

    try {
        new EDTImporter(edtUtils, uai, path, acceptLanguage, mode).launch(new Handler<AsyncResult<Report>>() {
            @Override
            public void handle(AsyncResult<Report> event) {
                if (event.succeeded()) {
                    message.reply(
                            new JsonObject().put("status", "ok").put("result", event.result().getResult()));
                    if (postImport != null) {
                        postImport.execute();
                    }
                } else {
                    log.error(event.cause().getMessage(), event.cause());
                    JsonObject json = new JsonObject().put("status", "error").put("message",
                            i18n.translate(event.cause().getMessage(), I18n.DEFAULT_DOMAIN, acceptLanguage));
                    message.reply(json);
                }
            }
        });
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        JsonObject json = new JsonObject().put("status", "error").put("message",
                i18n.translate(e.getMessage(), I18n.DEFAULT_DOMAIN, acceptLanguage));
        message.reply(json);
    }
}

From source file:org.entcore.feeder.timetable.udt.UDTImporter.java

License:Open Source License

public static void launchImport(Vertx vertx, final Message<JsonObject> message, final PostImport postImport,
        boolean udtUserCreation) {
    final I18n i18n = I18n.getInstance();
    final String uai = message.body().getString("UAI");
    final String path = message.body().getString("path");
    final String acceptLanguage = message.body().getString("language", "fr");

    if (Utils.isEmpty(uai) || Utils.isEmpty(path) || Utils.isEmpty(acceptLanguage)) {
        JsonObject json = new JsonObject().put("status", "error").put("message",
                i18n.translate("invalid.params", I18n.DEFAULT_DOMAIN, acceptLanguage));
        message.reply(json);
    }//from w w w .j  a  v a 2s . c  o m

    try {
        final String parentPath = FileUtils.getParentPath(path);
        FileUtils.unzip(path, parentPath);
        new UDTImporter(vertx, uai, parentPath + File.separator, acceptLanguage, udtUserCreation)
                .launch(new Handler<AsyncResult<Report>>() {
                    @Override
                    public void handle(AsyncResult<Report> event) {
                        if (event.succeeded()) {
                            message.reply(new JsonObject().put("status", "ok").put("result",
                                    event.result().getResult()));
                            if (postImport != null) {
                                postImport.execute();
                            }
                        } else {
                            log.error(event.cause().getMessage(), event.cause());
                            JsonObject json = new JsonObject().put("status", "error").put("message",
                                    i18n.translate(event.cause().getMessage(), I18n.DEFAULT_DOMAIN,
                                            acceptLanguage));
                            message.reply(json);
                        }
                    }
                });
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        JsonObject json = new JsonObject().put("status", "error").put("message",
                i18n.translate(e.getMessage(), I18n.DEFAULT_DOMAIN, acceptLanguage));
        message.reply(json);
    }
}

From source file:org.entcore.infra.controllers.EventStoreController.java

License:Open Source License

@BusAddress("event.store")
public void eventStore(final Message<JsonObject> message) {
    if (!authorizedUser(message.body())) {
        message.reply(new JsonObject().put("status", "ok"));
    } else {//from  w  ww . j  av a2  s  . co  m
        eventStoreService.store(message.body(), new Handler<Either<String, Void>>() {
            @Override
            public void handle(Either<String, Void> event) {
                if (event.isRight()) {
                    message.reply(new JsonObject().put("status", "ok"));
                } else {
                    message.reply(
                            new JsonObject().put("status", "error").put("message", event.left().getValue()));
                }
            }
        });
    }
}

From source file:org.entcore.infra.controllers.EventStoreController.java

License:Open Source License

@BusAddress("event.blacklist")
public void getBlacklist(final Message<Void> message) {
    message.reply(this.userBlackList);
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@BusAddress("wse.app.registry")
public void collectApps(final Message<JsonObject> message) {
    final JsonObject app = message.body().getJsonObject("application");
    final String application = app.getString("name");
    final JsonArray securedActions = message.body().getJsonArray("actions");
    if (application != null && securedActions != null && !application.trim().isEmpty()) {
        appRegistryService.createApplication(null, app, securedActions,
                new Handler<Either<String, JsonObject>>() {
                    @Override/*from w w  w . j  a  va2s. c  o m*/
                    public void handle(Either<String, JsonObject> event) {
                        JsonObject j = new JsonObject();
                        if (event.isRight()) {
                            j.put("status", "ok");
                        } else {
                            j.put("status", "error").put("message", event.left().getValue());
                        }
                        message.reply(j);
                    }
                });
    } else {
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.parameters"));
    }
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@BusAddress("wse.app.registry.applications")
public void applications(final Message<JsonObject> message) {
    String application = message.body().getString("application");
    if (application != null && !application.trim().isEmpty()) {
        String action = message.body().getString("action", "");
        Handler<Either<String, JsonArray>> responseHandler = new Handler<Either<String, JsonArray>>() {
            @Override/*  w ww  .  j ava  2s  .c  o  m*/
            public void handle(Either<String, JsonArray> res) {
                if (res.isRight()) {
                    message.reply(res.right().getValue());
                } else {
                    message.reply(new fr.wseduc.webutils.collections.JsonArray());
                }
            }
        };
        switch (action) {
        case "allowedUsers":
            appRegistryService.applicationAllowedUsers(application, message.body().getJsonArray("users"),
                    message.body().getJsonArray("groups"), responseHandler);
            break;
        case "allowedProfileGroups":
            appRegistryService.applicationAllowedProfileGroups(application, responseHandler);
            break;
        default:
            message.reply(new fr.wseduc.webutils.collections.JsonArray());
            break;
        }
    } else {
        message.reply(new fr.wseduc.webutils.collections.JsonArray());
    }
}

From source file:org.entcore.registry.controllers.AppRegistryController.java

License:Open Source License

@BusAddress("wse.app.registry.bus")
public void registryEventBusHandler(final Message<JsonObject> message) {
    final String structureId = message.body().getString("structureId");
    switch (message.body().getString("action", "")) {
    case "setDefaultClassRoles":
        appRegistryService.setDefaultClassRoles(message.body().getString("classId"),
                new Handler<Either<String, JsonObject>>() {
                    @Override//from   w  w  w .  java 2 s. co m
                    public void handle(Either<String, JsonObject> r) {
                        if (r.isRight()) {
                            message.reply(r.right().getValue());
                        } else {
                            message.reply(
                                    new JsonObject().put("status", "error").put("message", "invalid.classId"));
                        }
                    }
                });
        break;
    case "create-external-application":
        appRegistryService.createApplication(structureId, message.body().getJsonObject("application"), null,
                busResponseHandler(message));
        break;
    case "create-role":
        final JsonObject role = message.body().getJsonObject("role");
        final JsonArray actions = message.body().getJsonArray("actions");
        appRegistryService.createRole(structureId, role, actions, busResponseHandler(message));
        break;
    case "link-role-group":
        final String groupId = message.body().getString("groupId");
        final JsonArray roleIds = message.body().getJsonArray("roleIds");
        appRegistryService.linkRolesToGroup(groupId, roleIds, new Handler<Either<String, JsonObject>>() {
            @Override
            public void handle(Either<String, JsonObject> event) {
                if (event.isRight()) {
                    updatedProfileGroupActions(groupId);
                    message.reply(new JsonObject().put("status", "ok").put("result", event.right().getValue()));
                } else {
                    JsonObject error = new JsonObject().put("status", "error").put("message",
                            event.left().getValue());
                    message.reply(error);
                }
            }
        });
        break;
    case "list-groups-with-roles":
        boolean classGroups = message.body().getBoolean("classGroups", false);
        appRegistryService.listGroupsWithRoles(structureId, classGroups, busArrayHandler(message));
        break;
    case "list-roles":
        appRegistryService.listRoles(structureId, busArrayHandler(message));
        break;
    case "list-cas-connectors":
        appRegistryService.listCasConnectors(busArrayHandler(message));
        break;
    default:
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.action"));
    }
}