List of usage examples for io.vertx.core.eventbus Message reply
default void reply(@Nullable Object message)
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")); } }