List of usage examples for io.vertx.core.json JsonArray getJsonObject
public JsonObject getJsonObject(int pos)
From source file:org.entcore.common.http.filter.VisibleFilter.java
License:Open Source License
@Override public void authorize(HttpServerRequest request, Binding binding, UserInfos user, Handler<Boolean> handler) { final String userId = request.params().get("userId"); if (userId == null || userId.trim().isEmpty()) { handler.handle(false);// w ww .j a va 2 s. c o m return; } neo4j.execute(query, new JsonObject().put("queryUserId", user.getUserId()).put("userId", userId), event -> { final JsonArray res = event.body().getJsonArray("result"); handler.handle("ok".equals(event.body().getString("status")) && res != null && res.size() == 1 && res.getJsonObject(0).getBoolean("exists", false)); }); }
From source file:org.entcore.common.neo4j.Neo4jResult.java
License:Open Source License
public static Either<String, JsonObject> validUniqueResult(Message<JsonObject> res) { Either<String, JsonArray> r = validResult(res); if (r.isRight()) { JsonArray results = r.right().getValue(); if (results == null || results.size() == 0) { return new Either.Right<>(new JsonObject()); }/* w ww . j a v a2 s . c o m*/ if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) { return new Either.Right<>(results.getJsonObject(0)); } return new Either.Left<>("non.unique.result"); } else { return new Either.Left<>(r.left().getValue()); } }
From source file:org.entcore.common.neo4j.Neo4jResult.java
License:Open Source License
private static Either<String, JsonObject> validUniqueResult(int idx, Message<JsonObject> event) { Either<String, JsonArray> r = validResults(event); if (r.isRight()) { JsonArray results = r.right().getValue(); if (results == null || results.size() == 0) { return new Either.Right<>(new JsonObject()); } else {/*from ww w . ja v a 2 s . com*/ results = results.getJsonArray(idx); if (results.size() == 1 && (results.getValue(0) instanceof JsonObject)) { return new Either.Right<>(results.getJsonObject(0)); } } return new Either.Left<>("non.unique.result"); } else { return new Either.Left<>(r.left().getValue()); } }
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.j a va 2 s.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.service.impl.MongoDbRepositoryEvents.java
License:Open Source License
@Override public void deleteGroups(JsonArray groups) { if (groups == null || groups.size() == 0) { return;//from www . j ava 2 s.c om } 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 w w . ja va 2 s . c o m*/ } 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 www.j a v a 2s . co m 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.GenericShareService.java
License:Open Source License
protected void profilGroupIsVisible(String userId, final String groupId, final Handler<Boolean> handler) { if (userId == null || groupId == null) { handler.handle(false);//ww w. j ava2 s . c om return; } findVisibleProfilsGroups(eb, userId, new Handler<JsonArray>() { @Override public void handle(JsonArray visibleGroups) { final List<String> visibleGroupsIds = new ArrayList<>(); for (int i = 0; i < visibleGroups.size(); i++) { JsonObject j = visibleGroups.getJsonObject(i); if (j != null && j.getString("id") != null) { visibleGroupsIds.add(j.getString("id")); } } handler.handle(visibleGroupsIds.contains(groupId)); } }); }
From source file:org.entcore.common.share.impl.GenericShareService.java
License:Open Source License
protected void userIsVisible(String userId, final String userShareId, final Handler<Boolean> handler) { if (userId == null || userShareId == null) { handler.handle(false);/* w w w . j a v a 2 s .c om*/ return; } findVisibleUsers(eb, userId, false, new Handler<JsonArray>() { @Override public void handle(JsonArray visibleUsers) { final List<String> visibleUsersIds = new ArrayList<>(); for (int i = 0; i < visibleUsers.size(); i++) { JsonObject j = visibleUsers.getJsonObject(i); if (j != null && j.getString("id") != null) { visibleUsersIds.add(j.getString("id")); } } handler.handle(visibleUsersIds.contains(userShareId)); } }); }
From source file:org.entcore.common.share.impl.MongoDbShareService.java
License:Open Source License
private void share(String resourceId, final String groupShareId, final List<String> actions, boolean isGroup, final Handler<Either<String, JsonObject>> handler) { final String shareIdAttr = isGroup ? "groupId" : "userId"; QueryBuilder query = QueryBuilder.start("_id").is(resourceId); JsonObject keys = new JsonObject().put("shared", 1); final JsonObject q = MongoQueryBuilder.build(query); mongo.findOne(collection, q, keys, new Handler<Message<JsonObject>>() { @Override/* ww w . java 2 s . c o m*/ public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status")) && event.body().getJsonObject("result") != null) { JsonArray actual = event.body().getJsonObject("result").getJsonArray("shared", new fr.wseduc.webutils.collections.JsonArray()); boolean exist = false; for (int i = 0; i < actual.size(); i++) { JsonObject s = actual.getJsonObject(i); String id = s.getString(shareIdAttr); if (groupShareId.equals(id)) { for (String action : actions) { s.put(action, true); } if (groupedActions != null) { for (Map.Entry<String, List<String>> ga : groupedActions.entrySet()) { if (actions.containsAll(ga.getValue())) { s.put(ga.getKey(), true); } } } exist = true; break; } } final AtomicBoolean notifyTimeline = new AtomicBoolean(false); if (!exist) { JsonObject t = new JsonObject().put(shareIdAttr, groupShareId); actual.add(t); for (String action : actions) { t.put(action, true); } if (groupedActions != null) { for (Map.Entry<String, List<String>> ga : groupedActions.entrySet()) { if (actions.containsAll(ga.getValue())) { t.put(ga.getKey(), true); } } } notifyTimeline.set(true); } MongoUpdateBuilder updateQuery = new MongoUpdateBuilder().set("shared", actual); mongo.update(collection, q, updateQuery.build(), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> res) { if (notifyTimeline.get()) { JsonObject notify = new JsonObject(); notify.put(shareIdAttr, groupShareId); res.body().put("notify-timeline", notify); } handler.handle(Utils.validResult(res)); } }); } else { handler.handle(new Either.Left<String, JsonObject>("Resource not found.")); } } }); }