List of usage examples for io.vertx.core.eventbus Message body
@CacheReturn T body();
From source file:org.entcore.common.neo4j.Neo4jUtils.java
License:Open Source License
public static void loadScripts(final String appName, final Vertx vertx, final String path) { String query = "MATCH (n:System) WHERE n.name = {appName} RETURN n.scripts as scripts"; Neo4j.getInstance().execute(query, new JsonObject().put("appName", appName), new Handler<Message<JsonObject>>() { @Override//from w w w. jav a 2s . co m public void handle(Message<JsonObject> event) { JsonArray res = event.body().getJsonArray("result"); JsonArray scripts; if ("ok".equals(event.body().getString("status")) && res != null && res.size() > 0) { scripts = res.getJsonObject(0).getJsonArray("scripts", new fr.wseduc.webutils.collections.JsonArray()); } else { scripts = new fr.wseduc.webutils.collections.JsonArray(); } loadAndExecute(appName, vertx, path, true, scripts); loadAndExecute(appName, vertx, path, false, scripts); } }); }
From source file:org.entcore.common.neo4j.Neo4jUtils.java
License:Open Source License
private static void loadAndExecute(final String schema, final Vertx vertx, final String path, final boolean index, final JsonArray excludeFileNames) { final String pattern = index ? ".*?-index\\.cypher$" : "^(?!.*-index).*?\\.cypher$"; vertx.fileSystem().readDir(path, pattern, new Handler<AsyncResult<List<String>>>() { @Override// w w w . ja va2 s . c o m public void handle(AsyncResult<List<String>> asyncResult) { if (asyncResult.succeeded()) { final List<String> files = asyncResult.result(); Collections.sort(files); final StatementsBuilder s = new StatementsBuilder(); final JsonArray newFiles = new fr.wseduc.webutils.collections.JsonArray(); final AtomicInteger count = new AtomicInteger(files.size()); for (final String f : files) { final String filename = f.substring(f.lastIndexOf(File.separatorChar) + 1); if (!excludeFileNames.contains(filename)) { vertx.fileSystem().readFile(f, new Handler<AsyncResult<Buffer>>() { @Override public void handle(AsyncResult<Buffer> bufferAsyncResult) { if (bufferAsyncResult.succeeded()) { String script = bufferAsyncResult.result().toString(); for (String q : script.replaceAll("(\r|\n)", " ").split(";")) { s.add(q); } newFiles.add(filename); } else { log.error("Error reading file : " + f, bufferAsyncResult.cause()); } if (count.decrementAndGet() == 0) { commit(schema, s, newFiles, index); } } }); } else if (count.decrementAndGet() == 0 && newFiles.size() > 0) { commit(schema, s, newFiles, index); } } } else if (log.isDebugEnabled()) { log.debug("Error reading neo4j directory : " + path, asyncResult.cause()); } } private void commit(final String schema, StatementsBuilder s, final JsonArray newFiles, final boolean index) { final JsonObject params = new JsonObject().put("appName", schema).put("newFiles", newFiles); if (!index) { s.add(UPDATE_SCRIPTS, params); } Neo4j.getInstance().executeTransaction(s.build(), null, true, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { if ("ok".equals(message.body().getString("status"))) { if (index) { Neo4j.getInstance().execute(UPDATE_SCRIPTS, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error update scripts : " + event.body().getString("message")); } } }); } log.info("Scripts added : " + newFiles.encode()); } else { log.error("Error when commit transaction : " + message.body().getString("message")); } } }); } }); }
From source file:org.entcore.common.notification.NotificationUtils.java
License:Open Source License
public static void getUsersPreferences(EventBus eb, JsonArray userIds, String fields, final Handler<JsonArray> handler) { eb.send(USERBOOK_ADDRESS, new JsonObject().put("action", "get.userlist").put("application", "timeline") .put("additionalMatch", ", u-[:IN]->(g:Group)-[:AUTHORIZED]->(r:Role)-[:AUTHORIZE]->(act:WorkflowAction) ") .put("additionalWhere", "AND act.name = \"org.entcore.timeline.controllers.TimelineController|mixinConfig\" ") .put("additionalCollectFields", ", " + fields).put("userIds", userIds), handlerToAsyncHandler(new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { if (!"error".equals(event.body().getString("status"))) { handler.handle(event.body().getJsonArray("results")); } else { handler.handle(null); }/*from ww w . j a v a2 s . c om*/ } })); }
From source file:org.entcore.common.search.SearchingHandler.java
License:Open Source License
@Override public void handle(final Message<JsonObject> message) { final JsonArray searchWords = message.body().getJsonArray("searchWords"); final String userId = message.body().getString("userId", ""); final Integer page = message.body().getInteger("page", 0); final Integer limit = message.body().getInteger("limit", 0); final String searchId = message.body().getString("searchId", ""); final JsonArray groupIds = message.body().getJsonArray("groupIds", new fr.wseduc.webutils.collections.JsonArray()); final JsonArray columnsHeader = message.body().getJsonArray("columnsHeader", new fr.wseduc.webutils.collections.JsonArray()); final List<String> appFilters = message.body() .getJsonArray("appFilters", new fr.wseduc.webutils.collections.JsonArray()).getList(); final String locale = message.body().getString("locale", "fr"); searchingEvents.searchResource(appFilters, userId, groupIds, searchWords, page, limit, columnsHeader, locale, new Handler<Either<String, JsonArray>>() { @Override/*from w w w .j av a2s . c o m*/ public void handle(Either<String, JsonArray> event) { if (event.isRight()) { final String address = "search." + searchId; final JsonObject message = new JsonObject().put("application", searchingEvents.getClass().getSimpleName()); message.put("results", event.right().getValue()); eb.send(address, message, new DeliveryOptions().setSendTimeout(5000l), new Handler<AsyncResult<Message<JsonObject>>>() { @Override public void handle(AsyncResult<Message<JsonObject>> res) { if (res != null && res.succeeded()) { if (!"ok".equals(res.result().body().getString("message"))) { log.error(res.result().body().getString("message")); } } } }); } else { log.error( "Failure of the research module : " + searchingEvents.getClass().getSimpleName() + "; message : " + event.left().getValue()); } } }); }
From source file:org.entcore.common.service.impl.MongoDbCrudService.java
License:Open Source License
public void isOwner(String id, UserInfos user, final Handler<Boolean> handler) { QueryBuilder query = QueryBuilder.start("_id").is(id).put("owner.userId").is(user.getUserId()); mongo.count(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() { @Override//from w w w . ja v a 2 s. c om public void handle(Message<JsonObject> event) { JsonObject res = event.body(); handler.handle(res != null && "ok".equals(res.getString("status")) && 1 == res.getInteger("count")); } }); }
From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java
License:Open Source License
@Override public void deleteGroups(JsonArray groups) { if (groups == null || groups.size() == 0) { return;/*from w w w. j a v a 2 s .co m*/ } final String[] groupIds = new String[groups.size()]; for (int i = 0; i < groups.size(); i++) { JsonObject j = groups.getJsonObject(i); groupIds[i] = j.getString("group"); } final JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("shared.groupId").in(groupIds)); MongoUpdateBuilder modifier = new MongoUpdateBuilder(); modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("groupId").in(groupIds))); final String collection = MongoDbConf.getInstance().getCollection(); if (collection == null || collection.trim().isEmpty()) { log.error("Error deleting groups : invalid collection " + collection + " in class " + this.getClass().getName()); return; } mongo.update(collection, matcher, modifier.build(), false, true, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting groups in collection " + collection + " : " + event.body().getString("message")); } } }); }
From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java
License:Open Source License
@Override public void deleteUsers(JsonArray users) { if (users == null || users.size() == 0) { return;// w ww . j ava 2s . com } final String[] userIds = new String[users.size()]; for (int i = 0; i < users.size(); i++) { JsonObject j = users.getJsonObject(i); userIds[i] = j.getString("id"); } final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("shared.userId").in(userIds)); MongoUpdateBuilder modifier = new MongoUpdateBuilder(); modifier.pull("shared", MongoQueryBuilder.build(QueryBuilder.start("userId").in(userIds))); final String collection = MongoDbConf.getInstance().getCollection(); if (collection == null || collection.trim().isEmpty()) { log.error("Error deleting groups : invalid collection " + collection + " in class " + this.getClass().getName()); return; } mongo.update(collection, criteria, modifier.build(), false, true, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting users shared in collection " + collection + " : " + event.body().getString("message")); } final JsonObject criteria = MongoQueryBuilder.build(QueryBuilder.start("owner.userId").in(userIds)); MongoUpdateBuilder modifier = new MongoUpdateBuilder(); modifier.set("owner.deleted", true); mongo.update(collection, criteria, modifier.build(), false, true, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting users shared in collection " + collection + " : " + event.body().getString("message")); } else if (managerRight != null && !managerRight.trim().isEmpty()) { removeObjects(collection); } } }); } }); }
From source file:org.entcore.common.service.impl.MongoDbRepositoryEvents.java
License:Open Source License
protected void removeObjects(final String collection) { JsonObject matcher = MongoQueryBuilder .build(QueryBuilder.start("shared." + managerRight).notEquals(true).put("owner.deleted").is(true)); JsonObject projection = new JsonObject().put("_id", 1); // Get ids of objects who have no manager and no owner (owner has just been deleted, or has been deleted previously) mongo.find(collection, matcher, null, projection, new Handler<Message<JsonObject>>() { @Override//from w w w . j a v a2 s . c om public void handle(Message<JsonObject> event) { JsonArray res = event.body().getJsonArray("results"); if (!"ok".equals(event.body().getString("status"))) { log.error("Error when finding objects who have no manager and no owner : " + event.body().getString("message")); } else if (res == null || res.size() == 0) { log.info("There are no objects without manager and without owner : no objects to delete"); } else { final String[] objectIds = new String[res.size()]; for (int i = 0; i < res.size(); i++) { JsonObject j = res.getJsonObject(i); objectIds[i] = j.getString("_id"); } JsonObject matcher = MongoQueryBuilder.build(QueryBuilder.start("_id").in(objectIds)); mongo.delete(collection, matcher, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting objects in collection " + collection + " : " + event.body().getString("message")); } else if (revisionsCollection != null && !revisionsCollection.trim().isEmpty() && revisionIdAttribute != null && !revisionIdAttribute.trim().isEmpty()) { JsonObject criteria = MongoQueryBuilder .build(QueryBuilder.start(revisionIdAttribute).in(objectIds)); mongo.delete(revisionsCollection, criteria, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting revisions objects in collection " + revisionsCollection + " : " + event.body().getString("message")); } } }); } } }); } } }); }
From source file:org.entcore.common.share.impl.MongoDbShareService.java
License:Open Source License
@Override public void shareInfos(final String userId, String resourceId, final String acceptLanguage, final String search, final Handler<Either<String, JsonObject>> handler) { if (userId == null || userId.trim().isEmpty()) { handler.handle(new Either.Left<String, JsonObject>("Invalid userId.")); return;/*from ww w . j a v a 2 s . c o m*/ } if (resourceId == null || resourceId.trim().isEmpty()) { handler.handle(new Either.Left<String, JsonObject>("Invalid resourceId.")); return; } final JsonArray actions = getResoureActions(securedActions); QueryBuilder query = QueryBuilder.start("_id").is(resourceId); JsonObject keys = new JsonObject().put("shared", 1); mongo.findOne(collection, MongoQueryBuilder.build(query), keys, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { JsonArray shared = event.body().getJsonObject("result", new JsonObject()).getJsonArray("shared", new fr.wseduc.webutils.collections.JsonArray()); JsonObject gs = new JsonObject(); JsonObject us = new JsonObject(); for (Object o : shared) { if (!(o instanceof JsonObject)) continue; JsonObject userShared = (JsonObject) o; JsonArray a = new fr.wseduc.webutils.collections.JsonArray(); for (String attrName : userShared.fieldNames()) { if ("userId".equals(attrName) || "groupId".equals(attrName)) { continue; } if (groupedActions != null && groupedActions.containsKey(attrName)) { for (String action : groupedActions.get(attrName)) { a.add(action.replaceAll("\\.", "-")); } } else { a.add(attrName); } } final String g = userShared.getString("groupId"); String u; if (g != null) { gs.put(g, a); } else if ((u = userShared.getString("userId")) != null && !u.equals(userId)) { us.put(u, a); } } getShareInfos(userId, actions, gs, us, acceptLanguage, search, new Handler<JsonObject>() { @Override public void handle(JsonObject event) { if (event != null && event.size() == 3) { handler.handle(new Either.Right<String, JsonObject>(event)); } else { handler.handle( new Either.Left<String, JsonObject>("Error finding shared resource.")); } } }); } else { handler.handle(new Either.Left<String, JsonObject>( event.body().getString("error", "Error finding shared resource."))); } } }); }
From source file:org.entcore.common.share.impl.MongoDbShareService.java
License:Open Source License
private void inShare(String resourceId, String shareId, boolean group, final Handler<Boolean> handler) { QueryBuilder query = QueryBuilder.start("_id").is(resourceId).put("shared") .elemMatch(QueryBuilder.start(group ? "groupId" : "userId").is(shareId).get()); mongo.count(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() { @Override/*w w w . ja v a 2s .co m*/ public void handle(Message<JsonObject> event) { JsonObject res = event.body(); handler.handle(res != null && "ok".equals(res.getString("status")) && 1 == res.getInteger("count")); } }); }