List of usage examples for io.vertx.core.json JsonArray size
public int size()
From source file:org.entcore.blog.events.BlogSearchingEvents.java
License:Open Source License
@Override public void searchResource(List<String> appFilters, String userId, JsonArray groupIds, final JsonArray searchWords, final Integer page, final Integer limit, final JsonArray columnsHeader, final String locale, final Handler<Either<String, JsonArray>> handler) { if (appFilters.contains(BlogSearchingEvents.class.getSimpleName())) { final List<String> groupIdsLst = groupIds.getList(); final List<DBObject> groups = new ArrayList<DBObject>(); groups.add(QueryBuilder.start("userId").is(userId).get()); for (String gpId : groupIdsLst) { groups.add(QueryBuilder.start("groupId").is(gpId).get()); }/*from w w w. j av a 2 s. c o m*/ final QueryBuilder rightsQuery = new QueryBuilder().or( QueryBuilder.start("visibility").is(VisibilityFilter.PUBLIC.name()).get(), QueryBuilder.start("visibility").is(VisibilityFilter.PROTECTED.name()).get(), QueryBuilder.start("visibility").is(VisibilityFilter.PROTECTED.name()).get(), QueryBuilder.start("author.userId").is(userId).get(), QueryBuilder.start("shared") .elemMatch(new QueryBuilder().or(groups.toArray(new DBObject[groups.size()])).get()) .get()); final JsonObject projection = new JsonObject(); projection.put("_id", 1); //search all blogs of user mongo.find(Blog.BLOGS_COLLECTION, MongoQueryBuilder.build(rightsQuery), null, projection, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { final Either<String, JsonArray> ei = validResults(event); if (ei.isRight()) { final JsonArray blogsResult = ei.right().getValue(); final Set<String> setIds = new HashSet<String>(); for (int i = 0; i < blogsResult.size(); i++) { final JsonObject j = blogsResult.getJsonObject(i); setIds.add(j.getString("_id")); } //search posts for the blogs found searchPosts(page, limit, searchWords.getList(), setIds, new Handler<Either<String, JsonArray>>() { @Override public void handle(Either<String, JsonArray> event) { if (event.isRight()) { if (log.isDebugEnabled()) { log.debug( "[BlogSearchingEvents][searchResource] The resources searched by user are found"); } final JsonArray res = formatSearchResult( event.right().getValue(), columnsHeader, searchWords.getList()); handler.handle(new Right<String, JsonArray>(res)); } else { handler.handle(new Either.Left<String, JsonArray>( event.left().getValue())); } } }); } else { handler.handle(new Either.Left<String, JsonArray>(ei.left().getValue())); } } }); } else { handler.handle(new Right<String, JsonArray>(new JsonArray())); } }
From source file:org.entcore.blog.events.BlogSearchingEvents.java
License:Open Source License
private JsonArray formatSearchResult(final JsonArray results, final JsonArray columnsHeader, final List<String> words) { final List<String> aHeader = columnsHeader.getList(); final JsonArray traity = new JsonArray(); for (int i = 0; i < results.size(); i++) { final JsonObject j = results.getJsonObject(i); final JsonObject jr = new JsonObject(); if (j != null) { final String blogId = j.getJsonObject("blog").getString("$id"); jr.put(aHeader.get(0), j.getString("title")); jr.put(aHeader.get(1), j.getString("content", "")); jr.put(aHeader.get(2), j.getJsonObject("modified")); jr.put(aHeader.get(3), j.getJsonObject("author").getString("username")); jr.put(aHeader.get(4), j.getJsonObject("author").getString("userId")); jr.put(aHeader.get(5), "/blog#/view/" + blogId + "/" + j.getString("_id")); traity.add(jr);//from w w w . j a v a 2 s. c om } } return traity; }
From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java
License:Open Source License
@Override public void deleteUsers(JsonArray users) { if (users == null || users.size() == 0) { return;/* www .j a v a 2s. co 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 = DefaultBlogService.BLOG_COLLECTION; 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("author.userId").in(userIds)); MongoUpdateBuilder modifier = new MongoUpdateBuilder(); modifier.set("author.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 { delete(collection); } } }); } }); }
From source file:org.entcore.blog.services.impl.BlogRepositoryEvents.java
License:Open Source License
private void delete(final String collection) { final JsonObject query = MongoQueryBuilder .build(QueryBuilder.start("shared.org-entcore-blog-controllers-BlogController|shareJson") .notEquals(true).put("author.deleted").is(true)); mongo.find(collection, query, null, new JsonObject().put("_id", 1), new Handler<Message<JsonObject>>() { @Override/*from w w w . ja v a2 s. com*/ public void handle(Message<JsonObject> res) { String status = res.body().getString("status"); JsonArray results = res.body().getJsonArray("results"); if ("ok".equals(status) && results != null && results.size() > 0) { String[] blogIds = new String[results.size()]; for (int i = 0; i < results.size(); i++) { JsonObject j = results.getJsonObject(i); blogIds[i] = j.getString("_id"); } QueryBuilder q = QueryBuilder.start("blog.$id").in(blogIds); mongo.delete(DefaultPostService.POST_COLLECTION, MongoQueryBuilder.build(q), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting posts : " + event.body().encode()); } else { log.info("Posts deleted : " + event.body().getInteger("number")); } } }); QueryBuilder query = QueryBuilder.start("_id").in(blogIds); mongo.delete(collection, MongoQueryBuilder.build(query), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { log.error("Error deleting blogs : " + event.body().encode()); } else { log.info("Blogs deleted : " + event.body().getInteger("number")); } } }); } } }); }
From source file:org.entcore.cas.controllers.ConfigurationController.java
License:Open Source License
public void loadPatterns() { eb.send("wse.app.registry.bus", new JsonObject().put("action", "list-cas-connectors"), handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override//from w w w . j a va 2s . c om public void handle(Message<JsonObject> event) { if ("ok".equals(event.body().getString("status"))) { services.cleanPatterns(); JsonArray externalApps = event.body().getJsonArray("result"); for (Object o : externalApps) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o; String service = j.getString("service"); JsonArray patterns = j.getJsonArray("patterns"); if (service != null && !service.trim().isEmpty() && patterns != null && patterns.size() > 0) { services.addPatterns(service, Arrays.copyOf(patterns.getList().toArray(), patterns.size(), String[].class)); } } } else { log.error(event.body().getString("message")); } } })); }
From source file:org.entcore.cas.controllers.ConfigurationController.java
License:Open Source License
@BusAddress(value = "cas.configuration", local = false) public void cas(Message<JsonObject> message) { switch (message.body().getString("action", "")) { case "list-services": message.reply(new JsonObject().put("status", "ok").put("result", services.getInfos(message.body().getString("accept-language", "fr")))); break;/*from ww w . ja v a2s . c om*/ case "add-patterns": String service = message.body().getString("service"); JsonArray patterns = message.body().getJsonArray("patterns"); message.reply(new JsonObject().put("status", services.addPatterns(service, Arrays.copyOf(patterns.getList().toArray(), patterns.size(), String[].class)) ? "ok" : "error")); break; default: message.reply(new JsonObject().put("status", "error").put("message", "invalid.action")); } }
From source file:org.entcore.cas.services.EnglishAttackRegisteredService.java
License:Open Source License
@Override protected void prepareUserCas20(User user, final String userId, String service, final JsonObject data, final Document doc, final List<Element> additionnalAttributes) { user.setUser(data.getString(principalAttributeName)); if (log.isDebugEnabled()) { log.debug("START : prepareUserCas20 userId : " + userId); }//from w w w . j a v a2 s . c om try { if (log.isDebugEnabled()) { log.debug("DATA : prepareUserCas20 data : " + data); } String query = "MATCH (u:`User` { id : {id}}) return u"; JsonObject params = new JsonObject().put("id", userId); neo.execute(query, params, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> m) { // Uid if (data.containsKey("externalId")) { additionnalAttributes.add(createTextElement(EA_ID, data.getString("externalId"), doc)); } // Structures Element rootStructures = createElement(EA_STRUCTURE + "s", doc); for (Object o : data.getJsonArray("structures", new fr.wseduc.webutils.collections.JsonArray()) .getList()) { if (o == null || !(o instanceof JsonObject)) continue; JsonObject structure = (JsonObject) o; Element rootStructure = createElement(EA_STRUCTURE, doc); if (structure.containsKey("UAI")) { rootStructure.appendChild( createTextElement(EA_STRUCTURE_UAI, structure.getString("UAI"), doc)); } if (structure.containsKey("name")) { rootStructure.appendChild( createTextElement(EA_STRUCTURE_NAME, structure.getString("name"), doc)); } rootStructures.appendChild(rootStructure); } additionnalAttributes.add(rootStructures); // Profile switch (data.getString("type")) { case "Student": additionnalAttributes.add(createTextElement(EA_PROFILES, "National_1", doc)); addStringArray(EA_CLASSE, "classes", "name", data, doc, additionnalAttributes, new Mapper<String, String>() { String map(String input) { Matcher m = classGroupPattern.matcher(input); if (m.matches() && m.groupCount() >= 1) { return m.group(1); } return input; } }); // Email if (data.containsKey("email")) { additionnalAttributes.add(createTextElement(EA_EMAIL, data.getString("email"), doc)); } break; case "Teacher": additionnalAttributes.add(createTextElement(EA_PROFILES, "National_3", doc)); addStringArray(EA_CLASSE, "classes", "name", data, doc, additionnalAttributes, new Mapper<String, String>() { String map(String input) { Matcher m = classGroupPattern.matcher(input); if (m.matches() && m.groupCount() >= 1) { return m.group(1); } return input; } }); //Discipline Either<String, JsonObject> res = validUniqueResult(m); if (res.isRight()) { JsonObject j = res.right().getValue(); if (null != j.getJsonObject("u") && null != j.getJsonObject("u").getJsonObject("data") && null != j.getJsonObject("u").getJsonObject("data") .getJsonArray("functions")) { JsonArray jsonArrayFunctions = j.getJsonObject("u").getJsonObject("data") .getJsonArray("functions"); if (jsonArrayFunctions.size() > 0) { Element rootDisciplines = createElement(EA_DISCIPLINE + "s", doc); List<String> vTempListDiscipline = new ArrayList<>(); for (int i = 0; i < jsonArrayFunctions.size(); i++) { String fonction = jsonArrayFunctions.getString(i); String[] elements = fonction.split("\\$"); if (elements.length > 1) { String discipline = elements[elements.length - 2] + "$" + elements[elements.length - 1]; if (!vTempListDiscipline.contains(discipline)) { vTempListDiscipline.add(discipline); rootDisciplines.appendChild( createTextElement(EA_DISCIPLINE, discipline, doc)); } } else { log.error("Failed to get User functions userID, : " + userId + " fonction : " + fonction); } } additionnalAttributes.add(rootDisciplines); } } else { log.error("Failed to get User functions userID, user empty : " + userId + " j : " + j); } } else { log.error("Failed to get User functions userID : " + userId); } // Email if (data.containsKey("emailAcademy")) { additionnalAttributes .add(createTextElement(EA_EMAIL, data.getString("emailAcademy"), doc)); } else if (data.containsKey("email")) { additionnalAttributes.add(createTextElement(EA_EMAIL, data.getString("email"), doc)); } break; case "Relative": additionnalAttributes.add(createTextElement(EA_PROFILES, "National_2", doc)); break; case "Personnel": additionnalAttributes.add(createTextElement(EA_PROFILES, "National_4", doc)); break; } // Lastname if (data.containsKey("lastName")) { additionnalAttributes.add(createTextElement(EA_LASTNAME, data.getString("lastName"), doc)); } // Firstname if (data.containsKey("firstName")) { additionnalAttributes .add(createTextElement(EA_FIRSTNAME, data.getString("firstName"), doc)); } } }); } catch (Exception e) { log.error("Failed to transform User for EnglishAttack", e); } if (log.isDebugEnabled()) { log.debug("START : prepareUserCas20 userId : " + userId); } }
From source file:org.entcore.common.aggregation.indicators.mongo.IndicatorMongoImpl.java
License:Open Source License
private void writeStats(JsonArray results, final IndicatorGroup group, final Handler<JsonObject> callBack) { //If no documents found, write nothing if (results.size() == 0) { callBack.handle(new JsonObject()); return;//w w w. j ava 2s .c om } //Document date Date writeDate = this.writeDate; final MongoDBBuilder criteriaQuery = new MongoDBBuilder(); //Synchronization handler final AtomicInteger countDown = new AtomicInteger(results.size()); Handler<Message<JsonObject>> synchroHandler = new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> message) { if (!"ok".equals(message.body().getString("status"))) { String groupstr = group == null ? "Global" : group.toString(); log.error("[Aggregation][Error]{" + writtenIndicatorKey + "} (" + groupstr + ") writeStats : " + message.body().toString()); //log.info(criteriaQuery.toString()); } if (countDown.decrementAndGet() == 0) { callBack.handle(new JsonObject()); } } }; //For each aggregated result for (Object obj : results) { JsonObject result = (JsonObject) obj; if (group == null) { //When not using groups, set groupedBy specifically to not exists criteriaQuery.put(STATS_FIELD_DATE).is(MongoDb.formatDate(writeDate)).and(STATS_FIELD_GROUPBY) .exists(false); } else { //Adding date & group by to the criterias. criteriaQuery.put(STATS_FIELD_DATE).is(MongoDb.formatDate(writeDate)).and(STATS_FIELD_GROUPBY) .is(group.toString()); //Adding the group ids values IndicatorGroup g = group; while (g != null) { criteriaQuery.and(g.getKey() + "_id").is(result.getJsonObject("_id").getString(g.getKey())); g = g.getParent(); } } //Perform write action writeAction(criteriaQuery, result.getInteger("count"), synchroHandler); } }
From source file:org.entcore.common.elasticsearch.ElasticSearch.java
License:Open Source License
public void init(Vertx vertx, JsonObject config) { this.vertx = vertx; JsonArray serverUris = config.getJsonArray("server-uris"); String serverUri = config.getString("server-uri"); if (serverUris == null && serverUri != null) { serverUris = new fr.wseduc.webutils.collections.JsonArray().add(serverUri); }/*from ww w .ja v a 2 s.c o m*/ if (serverUris != null) { try { URI[] uris = new URI[serverUris.size()]; for (int i = 0; i < serverUris.size(); i++) { uris[i] = new URI(serverUris.getString(i)); } init(uris, vertx, config.getInteger("poolSize", 16), config.getBoolean("keepAlive", true), config); } catch (Exception e) { log.error(e.getMessage(), e); } } else { log.error("Invalid ElasticSearch URI"); } }
From source file:org.entcore.common.email.SmtpSender.java
License:Open Source License
@Override public void hardBounces(Date startDate, Date endDate, final Handler<Either<String, List<Bounce>>> handler) { final JsonObject query = new JsonObject().put("date", new JsonObject().put("$gte", new JsonObject().put("$date", removeTime(startDate).getTime())) .put("$lt", new JsonObject().put("$date", removeTime(endDate).getTime()))); MongoDb.getInstance().find("bounces", query, new Handler<Message<JsonObject>>() { @Override//from w w w. j a v a 2 s . co m public void handle(Message<JsonObject> event) { try { if ("ok".equals(event.body().getString("status"))) { JsonArray l = event.body().getJsonArray("results"); if (l == null || l.size() == 0) { handler.handle(new Either.Right<String, List<Bounce>>(Collections.<Bounce>emptyList())); return; } List<Bounce> bounces = mapper.readValue(l.encode(), new TypeReference<List<Bounce>>() { }); handler.handle(new Either.Right<String, List<Bounce>>(bounces)); } else { handler.handle(new Either.Left<String, List<Bounce>>(event.body().getString("message"))); } } catch (RuntimeException | IOException e) { handler.handle(new Either.Left<String, List<Bounce>>(e.getMessage())); log.error(e.getMessage(), e); } } }); }