List of usage examples for io.vertx.core.json JsonArray size
public int size()
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
private void persistBulKCourses() { final JsonArray cf = coursesBuffer; coursesBuffer = new fr.wseduc.webutils.collections.JsonArray(); final int countCoursesBuffer = cf.size(); if (countCoursesBuffer > 0) { mongoDb.bulk(COURSES, cf, new Handler<Message<JsonObject>>() { @Override//from w w w . j a va 2s . com public void handle(Message<JsonObject> event) { if (!"ok".equals(event.body().getString("status"))) { if (event.body().getString("message") == null || !event.body().getString("message").contains("duplicate key error")) { report.addError("error.persist.course"); } else { log.warn("Duplicate courses keys."); } } if (countMongoQueries.addAndGet(-countCoursesBuffer) == 0) { end(); } } }); } }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
private void persEducNatToClasses(JsonObject object) { final JsonArray classes = object.getJsonArray("classes"); if (classes != null) { final JsonObject params = new JsonObject().put("structureExternalId", structureExternalId) .put("classes", classes).put("source", getSource()) .put("outDate", DateTime.now().plusDays(1).getMillis()).put("now", importTimestamp); final JsonArray teacherIds = object.getJsonArray("teacherIds"); if (teacherIds != null && teacherIds.size() > 0) { params.put("profile", "Teacher"); for (Object id : teacherIds) { if (id != null) { txXDT.add(PERSEDUCNAT_TO_CLASSES, params.copy().put("id", id.toString())); }//from w w w. ja va 2 s .c o m } } final JsonArray personnelIds = object.getJsonArray("personnelIds"); if (personnelIds != null && personnelIds.size() > 0) { params.put("profile", "Personnel"); for (Object id : personnelIds) { if (id != null) { txXDT.add(PERSEDUCNAT_TO_CLASSES, params.copy().put("id", id.toString())); } } } } }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
private void persEducNatToSubjects(JsonObject object) { final String subjectId = object.getString("subjectId"); final JsonArray teacherIds = object.getJsonArray("teacherIds"); if (isNotEmpty(subjectId) && teacherIds != null && teacherIds.size() > 0) { final JsonObject params = new JsonObject().put("subjectId", subjectId).put("teacherIds", teacherIds) .put("classes", object.getJsonArray("classes", new fr.wseduc.webutils.collections.JsonArray())) .put("groups", object.getJsonArray("groups", new fr.wseduc.webutils.collections.JsonArray())) .put("source", getSource()).put("now", importTimestamp); txXDT.add(LINK_SUBJECT, params); }/*w w w .j av a 2s. co m*/ }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
public static void updateMergedUsers(JsonArray mergedUsers) { if (mergedUsers == null) return;//from www. java2 s . co m long now = System.currentTimeMillis(); for (int i = 1; i < mergedUsers.size(); i += 2) { final JsonArray a = mergedUsers.getJsonArray(i); if (a.size() > 0) { updateMergedUsers(a.getJsonObject(0), now); } } }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
public static void transition(final String structureExternalId) { if (isNotEmpty(structureExternalId)) { final String query = "MATCH (s:Structure {externalId: {externalId}}) RETURN s.id as structureId"; final JsonObject params = new JsonObject().put("externalId", structureExternalId); TransactionManager.getNeo4jHelper().execute(query, params, new Handler<Message<JsonObject>>() { @Override/* ww w . j av a 2 s . c o m*/ public void handle(Message<JsonObject> event) { final JsonArray res = event.body().getJsonArray("result"); if ("ok".equals(event.body().getString("status")) && res != null && res.size() > 0) { transitionDeleteCourses(res.getJsonObject(0)); transitionDeleteSubjectsAndMapping(structureExternalId); } } }); } else { transitionDeleteCourses(new JsonObject()); transitionDeleteSubjectsAndMapping(structureExternalId); } }
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;//from ww w.java 2 s . c o m } 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
private void userExternalId(final Handler<Void> handler) { if (!userImportedPronoteId.isEmpty()) { final String query = "MATCH (u:User) where u.IDPN IN {pronoteIds} RETURN COLLECT(u.externalId) as externalIds"; TransactionManager.getNeo4jHelper().execute(query, new JsonObject().put("pronoteIds", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(userImportedPronoteId))), new Handler<Message<JsonObject>>() { @Override//ww w . jav a 2 s. c o m public void handle(Message<JsonObject> event) { JsonArray res = event.body().getJsonArray("result"); if ("ok".equals(event.body().getString("status")) && res.size() == 1) { JsonArray r = res.getJsonObject(0).getJsonArray("externalIds"); if (r != null) { userImportedExternalId.addAll(r.getList()); } } handler.handle(null); } }); } else { handler.handle(null); } }
From source file:org.entcore.feeder.timetable.udt.UDTImporter.java
License:Open Source License
void initPeriods(JsonObject currentEntity) { JsonArray weeks = currentEntity.getJsonArray("semaine"); if (weeks != null && weeks.size() > 0) { int oldWeek = startDateWeek1.getWeekOfWeekyear(); for (Object o : weeks) { if (o instanceof JsonObject) { int week = Integer.parseInt(((JsonObject) o).getString("num")); if (week != oldWeek) { periods.put(oldWeek, (week == 1 ? maxYearWeek : week - 1)); oldWeek = week;/*from w ww . ja va 2 s .c o m*/ } } } periods.put(oldWeek, new DateTime(endStudents).getWeekOfWeekyear()); for (int i = new DateTime(endStudents).getWeekOfWeekyear() + 1; i < startDateWeek1 .getWeekOfWeekyear(); i++) { holidaysWeeks.add(i); } } }
From source file:org.entcore.feeder.utils.AAFUtil.java
License:Open Source License
private static JsonObject siecleConverter(JsonArray value) { JsonObject res = new JsonObject(); JsonArray ENTEleveParents = new fr.wseduc.webutils.collections.JsonArray(); Set<String> ENTEleveAutoriteParentale = new HashSet<>(); String ENTEleveAutoriteParentale1 = ""; String ENTEleveAutoriteParentale2 = ""; String ENTElevePersRelEleve1 = ""; String ENTEleveQualitePersRelEleve1 = ""; String ENTElevePersRelEleve2 = ""; String ENTEleveQualitePersRelEleve2 = ""; // prevent missing "ENTEleveAutoriteParentale" if item is duplicate if (value.size() > 2) { final Map<String, String> tmp = new HashMap<>(); for (Object o : value) { final String[] s = ((String) o).split("\\$", 2); final String v = tmp.get(s[0]); if (v == null || "1$1$1$1$0".equals(v)) { tmp.put(s[0], s[1]);/* ww w. j av a2 s .com*/ } } JsonArray tmpArray = new fr.wseduc.webutils.collections.JsonArray(); for (Map.Entry<String, String> e : tmp.entrySet()) { tmpArray.add(e.getKey() + "$" + e.getValue()); } value = tmpArray; } for (Object o : value) { String[] s = ((String) o).split("\\$"); if ("1".equals(s[1]) || "2".equals(s[1]) || "10".equals(s[1]) || "20".equals(s[1])) { if (!ENTEleveParents.contains(s[0])) { ENTEleveParents.add(s[0]); } } else if ("1".equals(s[2]) || "1".equals(s[4]) || "1".equals(s[5])) { if ("1".equals(s[2])) { if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) { ENTElevePersRelEleve1 = s[0]; ENTEleveQualitePersRelEleve1 = "FINANCIER"; } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) { ENTElevePersRelEleve2 = s[0]; ENTEleveQualitePersRelEleve2 = "FINANCIER"; } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve1)) { ENTElevePersRelEleve1 = s[0]; ENTEleveQualitePersRelEleve1 = "FINANCIER"; } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve2)) { ENTElevePersRelEleve2 = s[0]; ENTEleveQualitePersRelEleve2 = "FINANCIER"; } } else if ("1".equals(s[4])) { if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) { ENTElevePersRelEleve1 = s[0]; ENTEleveQualitePersRelEleve1 = "CONTACT"; } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) { ENTElevePersRelEleve2 = s[0]; ENTEleveQualitePersRelEleve2 = "CONTACT"; } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve1)) { ENTElevePersRelEleve1 = s[0]; ENTEleveQualitePersRelEleve1 = "CONTACT"; } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve2)) { ENTElevePersRelEleve2 = s[0]; ENTEleveQualitePersRelEleve2 = "CONTACT"; } } else if ("1".equals(s[5])) { if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) { ENTElevePersRelEleve1 = s[0]; ENTEleveQualitePersRelEleve1 = "PAIEMENT"; } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) { ENTElevePersRelEleve2 = s[0]; ENTEleveQualitePersRelEleve2 = "PAIEMENT"; } } } if ("1".equals(s[3])) { if (isEmpty(ENTEleveAutoriteParentale1)) { ENTEleveAutoriteParentale1 = s[0]; } ENTEleveAutoriteParentale.add(s[0]); } if (isEmpty(ENTEleveAutoriteParentale2) && "2".equals(s[3])) { ENTEleveAutoriteParentale2 = s[0]; } } if (!ENTEleveAutoriteParentale1.isEmpty() && !ENTEleveAutoriteParentale.contains(ENTEleveAutoriteParentale1)) { ENTEleveAutoriteParentale.add(ENTEleveAutoriteParentale1); } if (!ENTEleveAutoriteParentale2.isEmpty() && !ENTEleveAutoriteParentale.contains(ENTEleveAutoriteParentale2)) { ENTEleveAutoriteParentale.add(ENTEleveAutoriteParentale2); } res.put("ENTEleveParents", ENTEleveParents); res.put("ENTEleveAutoriteParentale", new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ENTEleveAutoriteParentale))); res.put("ENTElevePersRelEleve1", ENTElevePersRelEleve1); res.put("ENTEleveQualitePersRelEleve1", ENTEleveQualitePersRelEleve1); res.put("ENTElevePersRelEleve2", ENTElevePersRelEleve2); res.put("ENTEleveQualitePersRelEleve2", ENTEleveQualitePersRelEleve2); res.put("ENTElevePersRelEleve", value); return res; }
From source file:org.entcore.feeder.utils.Report.java
License:Open Source License
private void countDiff(Optional<String> prefixAcademy, String source, final Handler<JsonObject> handler) { try {/* www . j ava 2 s. c om*/ TransactionHelper tx = TransactionManager.getTransaction(); JsonObject params = new JsonObject().put("source", source).put("start", startTime).put("end", endTime) .put("startTime", new DateTime(startTime).toString()) .put("endTime", new DateTime(endTime).toString()); if (prefixAcademy.isPresent()) { params.put("prefixAcademy", prefixAcademy.get()); } tx.add("MATCH (u:User {source:{source}}) " + "WHERE HAS(u.created) AND u.created >= {startTime} AND u.created < {endTime} " + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")// + "RETURN count(*) as createdCount", params); tx.add("MATCH (u:User {source:{source}}) " + "WHERE HAS(u.modified) AND u.modified >= {startTime} AND u.modified < {endTime} " + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")// + "RETURN count(*) as modifiedCount", params); tx.add("MATCH (u:User {source:{source}}) " + "WHERE HAS(u.disappearanceDate) AND u.disappearanceDate >= {start} AND u.disappearanceDate < {end} " + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")// + "RETURN count(*) as disappearanceCount", params); tx.commit(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { JsonArray results = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && results != null && results.size() == 3) { try { final JsonObject result = cloneAndFilterResults(prefixAcademy); int created = results.getJsonArray(0).getJsonObject(0).getInteger("createdCount"); int modified = results.getJsonArray(1).getJsonObject(0).getInteger("modifiedCount"); int disappearance = results.getJsonArray(2).getJsonObject(0) .getInteger("disappearanceCount"); result.put("userCount", new JsonObject().put("created", created) .put("modified", (modified - created)).put("disappearance", disappearance)); result.put("source", source); result.put("startTime", new DateTime(startTime).toString()); result.put("endTime", new DateTime(endTime).toString()); result.put("loadedFiles", cloneAndFilterFiles(prefixAcademy)); handler.handle(result); // persist(new Handler<Message<JsonObject>>() { // @Override // public void handle(Message<JsonObject> event) { // if (!"ok".equals(event.body().getString("status"))) { // log.error("Error persist report : " + event.body().getString("message")); // } // } // }); } catch (RuntimeException e) { log.error("Error parsing count diff response.", e); handler.handle(null); } } else { log.error("Error in count diff transaction."); handler.handle(null); } } }); } catch (TransactionException e) { log.error("Exception in count diff transaction.", e); if (handler != null) { handler.handle(null); } } }