List of usage examples for io.vertx.core.json JsonArray getJsonArray
public JsonArray getJsonArray(int pos)
From source file:org.entcore.feeder.export.eliot.PorteurENTExportProcessing.java
License:Open Source License
@Override protected void list(final Integer skip, final Integer limit, final Handler<JsonArray> handler) { TransactionManager.executeTransaction(new Function<TransactionHelper, Message<JsonObject>>() { @Override/*from w w w . j ava 2 s . c om*/ public void apply(TransactionHelper value) { Tenant.list(attributes, skip, limit, value); } @Override public void handle(Message<JsonObject> result) { JsonArray r = result.body().getJsonArray("results"); if ("ok".equals(result.body().getString("status")) && r != null && r.size() == 1) { JsonArray rs = r.getJsonArray(0); handler.handle(rs); } else { handler.handle(null); } } }); }
From source file:org.entcore.feeder.export.eliot.UserExportProcessing.java
License:Open Source License
@Override protected void count(final Handler<Integer> handler) { TransactionManager.executeTransaction(new Function<TransactionHelper, Message<JsonObject>>() { @Override//from ww w .j a va 2 s . co m public void apply(TransactionHelper value) { User.count(EliotExporter.ELIOT, profiles, value); } @Override public void handle(Message<JsonObject> result) { JsonArray r = result.body().getJsonArray("results"); if ("ok".equals(result.body().getString("status")) && r != null && r.size() == 1) { JsonArray rs = r.getJsonArray(0); if (rs != null && rs.size() == 1) { JsonObject row = rs.getJsonObject(0); handler.handle(row.getInteger("nb", 0)); return; } } handler.handle(null); } }); }
From source file:org.entcore.feeder.export.eliot.UserExportProcessing.java
License:Open Source License
@Override protected void list(final Integer skip, final Integer limit, final Handler<JsonArray> handler) { TransactionManager.executeTransaction(new Function<TransactionHelper, Message<JsonObject>>() { @Override/*from w w w.j ava 2 s. c om*/ public void apply(TransactionHelper value) { User.list(EliotExporter.ELIOT, profiles, attributes, skip, limit, value); } @Override public void handle(Message<JsonObject> result) { JsonArray r = result.body().getJsonArray("results"); if ("ok".equals(result.body().getString("status")) && r != null && r.size() == 1) { JsonArray rs = r.getJsonArray(0); handler.handle(rs); } else { handler.handle(null); } } }); }
From source file:org.entcore.feeder.ManualFeeder.java
License:Open Source License
private void removeUserFromStructure(final Message<JsonObject> message, String userId, String structureId) { try {/* ww w .j a v a 2 s .c om*/ TransactionHelper tx = TransactionManager.getTransaction(); JsonObject params = new JsonObject().put("structureId", structureId).put("userId", userId); final String query = "MATCH (u:User { id : {userId}})-[r:IN|COMMUNIQUE]-(cpg:ProfileGroup)-[:DEPENDS*0..1]->" + "(pg:ProfileGroup)-[:DEPENDS]->(s:Structure { id : {structureId}}), " + "pg-[:HAS_PROFILE]->(p:Profile), p<-[:HAS_PROFILE]-(dpg:DefaultProfileGroup) " + "CREATE UNIQUE dpg<-[:IN]-u " + "SET u.structures = FILTER(sId IN u.structures WHERE sId <> s.externalId), " + "u.classes = FILTER(cId IN u.classes WHERE NOT(cId =~ (s.externalId + '.*'))) " + "DELETE r " + "RETURN DISTINCT u.id as id"; final String removeFunctions = "MATCH (u:User { id : {userId}})-[r:HAS_FUNCTION]->() " + "WHERE {structureId} IN r.scope " + "SET r.scope = FILTER(sId IN r.scope WHERE sId <> {structureId}) " + "WITH r " + "WHERE LENGTH(r.scope) = 0 " + "DELETE r"; final String removeFunctionGroups = "MATCH (u:User { id : {userId}})-[r:IN|COMMUNIQUE]-(:Group)-[:DEPENDS]->(s:Structure { id : {structureId}})" + "DELETE r"; tx.add(query, params); tx.add(removeFunctions, params); tx.add(removeFunctionGroups, params); tx.commit(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { final JsonArray results = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && results != null && results.size() > 0) { message.reply(event.body().put("result", results.getJsonArray(0))); } else { message.reply(event.body()); } } }); } catch (TransactionException e) { logger.error("Error in transaction when remove user from structure", e); sendError(message, "transaction.error"); } }
From source file:org.entcore.feeder.ManualFeeder.java
License:Open Source License
private void removeUserFromClass(final Message<JsonObject> message, String userId, String classId) { try {// w w w . java2s .c om TransactionHelper tx = TransactionManager.getTransaction(); JsonObject params = new JsonObject().put("classId", classId).put("userId", userId); String query = "MATCH (u:User { id : {userId}})-[r:IN|COMMUNIQUE]-(cpg:ProfileGroup)-[:DEPENDS]->" + "(c:Class {id : {classId}}), cpg-[:DEPENDS]->(pg:ProfileGroup)-[:HAS_PROFILE]->(p:Profile), " + "p<-[:HAS_PROFILE]-(dpg:DefaultProfileGroup) " + "CREATE UNIQUE dpg<-[:IN]-u " + "SET u.classes = FILTER(cId IN u.classes WHERE cId <> c.externalId) , u.headTeacherManual = FILTER(x IN u.headTeacherManual WHERE x <> c.externalId) " + "DELETE r " + "RETURN DISTINCT u.id as id"; tx.add(query, params); String query2 = "MATCH (u:User { id : {userId}})-[r:IN|COMMUNIQUE]->(g:Group:HTGroup)-[:DEPENDS]->(c:Class {id : {classId}}) " + "DELETE r "; tx.add(query2, params); String query3 = "MATCH (u:User { id : {userId}})-[r:IN|COMMUNIQUE]->(g:Group:HTGroup)-[:DEPENDS]->(s:Structure)<-[b:BELONGS]-(c:Class {id : {classId}}) " + "WHERE length(u.headTeacherManual) = 0 AND (u.headTeacher IS NULL OR length(u.headTeacher) = 0) " + "DELETE r " + "RETURN DISTINCT u.id as id"; tx.add(query3, params); tx.commit(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { final JsonArray results = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && results != null && results.size() > 0) { message.reply(event.body().put("result", results.getJsonArray(0))); } else { message.reply(event.body()); } } }); } catch (TransactionException e) { logger.error("Error in transaction when remove user from structure", e); sendError(message, "transaction.error"); } }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
protected void init(final Handler<AsyncResult<Void>> handler) throws TransactionException { importTimestamp = System.currentTimeMillis(); final String externalIdFromUAI = "MATCH (s:Structure {UAI : {UAI}}) " + "return s.externalId as externalId, s.id as id, s.timetable as timetable "; final String tma = getTeacherMappingAttribute(); final String getUsersByProfile = "MATCH (:Structure {UAI : {UAI}})<-[:DEPENDS]-(:ProfileGroup)<-[:IN]-(u:User) " + "WHERE head(u.profiles) = {profile} AND NOT(u." + tma + " IS NULL) " + "RETURN DISTINCT u.id as id, u." + tma + " as tma, head(u.profiles) as profile, u.source as source, " + "u.lastName as lastName, u.firstName as firstName"; final String classesMappingQuery = "MATCH (s:Structure {UAI : {UAI}})<-[:MAPPING]-(cm:ClassesMapping) " + "return cm.mapping as mapping "; final String subjectsMappingQuery = "MATCH (s:Structure {UAI : {UAI}})<-[:SUBJECT]-(sub:Subject) return sub.code as code, sub.id as id"; final TransactionHelper tx = TransactionManager.getTransaction(); tx.add(getUsersByProfile, new JsonObject().put("UAI", UAI).put("profile", "Teacher")); tx.add(externalIdFromUAI, new JsonObject().put("UAI", UAI)); tx.add(classesMappingQuery, new JsonObject().put("UAI", UAI)); tx.add(subjectsMappingQuery, new JsonObject().put("UAI", UAI)); tx.commit(new Handler<Message<JsonObject>>() { @Override/*from w w w . j av a2 s. c om*/ public void handle(Message<JsonObject> event) { final JsonArray res = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && res != null && res.size() == 4) { try { for (Object o : res.getJsonArray(0)) { if (o instanceof JsonObject) { final JsonObject j = (JsonObject) o; teachersMapping.put(j.getString("tma"), new String[] { j.getString("id"), j.getString("source") }); teachersCleanNameMapping.put( Validator.sanitize(j.getString("firstName") + j.getString("lastName")), new String[] { j.getString("id"), j.getString("source") }); } } JsonArray a = res.getJsonArray(1); if (a != null && a.size() == 1) { structureExternalId = a.getJsonObject(0).getString("externalId"); structure.add(structureExternalId); structureId = a.getJsonObject(0).getString("id"); if (!getSource().equals(a.getJsonObject(0).getString("timetable"))) { handler.handle(new DefaultAsyncResult<Void>( new TransactionException("different.timetable.type"))); return; } } else { handler.handle(new DefaultAsyncResult<Void>(new ValidationException("invalid.uai"))); return; } JsonArray cm = res.getJsonArray(2); if (cm != null && cm.size() == 1) { try { final JsonObject cmn = cm.getJsonObject(0); log.info(cmn.encode()); if (isNotEmpty(cmn.getString("mapping"))) { classesMapping = new JsonObject(cmn.getString("mapping")); log.info("classMapping : " + classesMapping.encodePrettily()); } else { classesMapping = new JsonObject(); } } catch (Exception ecm) { classesMapping = new JsonObject(); log.error(ecm.getMessage(), ecm); } } JsonArray subjects = res.getJsonArray(3); if (subjects != null && subjects.size() > 0) { for (Object o : subjects) { if (o instanceof JsonObject) { final JsonObject s = (JsonObject) o; subjectsMapping.put(s.getString("code"), s.getString("id")); } } } txXDT = TransactionManager.getTransaction(); persEducNat = new PersEducNat(txXDT, report, getSource()); persEducNat.setMapping( "dictionary/mapping/" + getSource().toLowerCase() + "/PersEducNat.json"); handler.handle(new DefaultAsyncResult<>((Void) null)); } catch (Exception e) { handler.handle(new DefaultAsyncResult<Void>(e)); } } else { handler.handle(new DefaultAsyncResult<Void>( new TransactionException(event.body().getString("message")))); } } }); }
From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java
License:Open Source License
public static void updateMergedUsers(JsonArray mergedUsers) { if (mergedUsers == null) return;/*from w ww . j ava 2s. 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 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 w ww. j ava 2 s . c om } 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.utils.AAFUtil.java
License:Open Source License
private static JsonArray functionsEtabConverter(JsonArray value) { JsonArray res = new fr.wseduc.webutils.collections.JsonArray(); for (Object o : value) { if (!(o instanceof JsonArray)) continue; JsonArray a = (JsonArray) o; final String c = a.getString(0); if (c != null) { final String code = functionCodes.getString(c, c); for (Object s : a.getJsonArray(1)) { res.add("EtabEducNat$" + s + "$" + code); }/*from www . j a v a 2 s .c o m*/ } } 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 {//from ww w .j a v a2 s. c o m 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); } } }