List of usage examples for io.vertx.core.json JsonArray JsonArray
public JsonArray()
From source file:org.entcore.feeder.timetable.edt.EDTImporter.java
License:Open Source License
private void matchAndCreatePersEducNat(final Handler<AsyncResult<Void>> handler) { txXDT.commit(new Handler<Message<JsonObject>>() { @Override/*from www.j a va 2 s .co m*/ public void handle(Message<JsonObject> event) { JsonArray res = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && res != null) { for (Object o : res) { setUsersId(o); } if (!notFoundPersEducNat.isEmpty()) { try { TransactionHelper tx = TransactionManager.getTransaction(); persEducNat.setTransactionHelper(tx); for (JsonObject p : notFoundPersEducNat.values()) { p.put("structures", new JsonArray().add(structureExternalId)); if ("Teacher".equals(p.getJsonArray("profiles").getString(0))) { persEducNat.createOrUpdatePersonnel(p, TEACHER_PROFILE_EXTERNAL_ID, structure, null, null, true, true); } else { persEducNat.createOrUpdatePersonnel(p, PERSONNEL_PROFILE_EXTERNAL_ID, structure, null, null, true, true); } } tx.commit(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { JsonArray res = event.body().getJsonArray("results"); if ("ok".equals(event.body().getString("status")) && res != null) { for (Object o : res) { setUsersId(o); } if (notFoundPersEducNat.isEmpty()) { handler.handle(new DefaultAsyncResult<>((Void) null)); } else { for (Map.Entry<String, JsonObject> e : notFoundPersEducNat.entrySet()) { log.info(e.getKey() + " : " + e.getValue().encode()); } handler.handle(new DefaultAsyncResult<Void>( new ValidationException("not.found.users.not.empty"))); } } else { handler.handle(new DefaultAsyncResult<Void>( new TransactionException(event.body().getString("message")))); } } }); } catch (TransactionException e) { handler.handle(new DefaultAsyncResult<Void>(e)); } } else { handler.handle(new DefaultAsyncResult<>((Void) null)); } } else { handler.handle(new DefaultAsyncResult<Void>( new TransactionException(event.body().getString("message")))); } } private void setUsersId(Object o) { if ((o instanceof JsonArray) && ((JsonArray) o).size() > 0) { JsonObject j = ((JsonArray) o).getJsonObject(0); String idPronote = j.getString(IDPN); String id = j.getString("id"); String profile = j.getString("profile"); if (isNotEmpty(id) && isNotEmpty(idPronote) && isNotEmpty(profile)) { notFoundPersEducNat.remove(idPronote); if ("Teacher".equals(profile)) { teachersMapping.put(idPronote, new String[] { id, getSource() }); } else { String[] ident = idPronote.split("\\$"); if (ident.length == 2) { personnels.put(ident[1], id); } } } } } }); }
From source file:org.entcore.feeder.timetable.udt.UDTImporter.java
License:Open Source License
void addProfesseur(JsonObject currentEntity) { try {//w w w. j ava2 s .c om if (isEmpty(currentEntity.getString("code_matppl"))) { // Ignore prof without subject. // Often this case corresponds to personnel. return; } final String id = currentEntity.getString(CODE); String externalId = currentEntity.getString("epj"); final String firstName = currentEntity.getString("prenom"); final String lastName = currentEntity.getString("nom"); JsonObject p = persEducNat.applyMapping(currentEntity); p.put("profiles", new fr.wseduc.webutils.collections.JsonArray().add("Teacher")); if (isEmpty(externalId)) { externalId = JsonUtil.checksum(p, JsonUtil.HashAlgorithm.MD5); } p.put("externalId", externalId); userImportedExternalId.add(externalId); String[] teacherId = teachersMapping.get(externalId); if (teacherId == null) { teacherId = teachersCleanNameMapping.get(Validator.sanitize(firstName + lastName)); } if (teacherId != null && isNotEmpty(teacherId[0])) { teachers.put(id, teacherId[0]); if (getSource().equals(teacherId[1]) && authorizeUserCreation) { updateUser(p); } } else { final String userId = UUID.randomUUID().toString(); p.put("id", userId); p.put("structures", new JsonArray().add(structureExternalId)); if (authorizeUserCreation) { persEducNat.createOrUpdatePersonnel(p, TEACHER_PROFILE_EXTERNAL_ID, structure, null, null, true, true); } teachers.put(id, userId); } } catch (Exception e) { report.addError(e.getMessage()); } }
From source file:org.entcore.feeder.utils.AAFUtil.java
License:Open Source License
private static Object functionalGroupConverter(Object value) { final JsonArray res = new JsonArray(); if (value instanceof JsonArray) { for (Object o : ((JsonArray) value)) { if (o instanceof JsonObject) { final JsonObject j = (JsonObject) o; final String structureExternalId = j.getString("structureExternalId"); if (isNotEmpty(structureExternalId)) { final String idrgpmt = j.getString("idrgpmt"); final String name = j.getString("name"); if (isNotEmpty(idrgpmt)) { res.add(structureExternalId + "$" + name + "$" + idrgpmt); } else if (isNotEmpty(j.getString("idgpe"))) { if (!getOrElse(j.getBoolean("usedInCourses"), false)) continue; final String code = j.getString("code"); if (isNotEmpty(code) && isNotEmpty(j.getString("code_gep"))) { res.add(structureExternalId + "$" + j.getString("code_gep") + "_" + code + "$" + j.getString("idgpe")); } else if (isNotEmpty(code) && isNotEmpty(j.getString("code_div"))) { res.add(structureExternalId + "$" + j.getString("code_div") + "_" + code + "$" + j.getString("idgpe")); }/* ww w .java2 s. c o m*/ } else if (isEmpty(j.getString("externalId")) && isNotEmpty(name)) { res.add(structureExternalId + "$" + name + "$" + j.getString("id")); } else if (isNotEmpty(j.getString("externalId"))) { res.add(j.getString("externalId") + "$" + j.getString("id")); } } } } } return res; }
From source file:org.entcore.feeder.utils.Report.java
License:Open Source License
private JsonObject cloneAndFilterResults(Optional<String> prefixAcademy) { JsonObject results = this.result.copy(); if (prefixAcademy.isPresent()) { // filter each ignored object by externalId starting with academy name String prefix = prefixAcademy.get(); JsonObject ignored = results.getJsonObject("ignored"); Set<String> domains = ignored.fieldNames(); for (String domain : domains) { JsonArray filtered = ignored.getJsonArray(domain, new JsonArray()).stream().filter(ig -> { if (ig instanceof JsonObject && ((JsonObject) ig).containsKey("object")) { JsonObject object = ((JsonObject) ig).getJsonObject("object"); String externalId = object.getString("externalId"); return StringUtils.startsWithIgnoreCase(externalId, prefix); } else { // keep in list because it is not a concerned object return true; }/*from w w w. j a va2s .c om*/ }).collect(JsonArray::new, JsonArray::add, JsonArray::addAll);// ignored.put(domain, filtered); } // userExternalIds FIltered JsonArray usersExternalIdsFiltered = results.getJsonArray("usersExternalIds", new JsonArray()).stream() .filter(value -> { return (value instanceof String && StringUtils.startsWithIgnoreCase((String) value, prefix)); }).collect(JsonArray::new, JsonArray::add, JsonArray::addAll);// results.put("usersExternalIds", usersExternalIdsFiltered); } return results; }
From source file:org.entcore.workspace.service.WorkspaceService.java
License:Open Source License
private void updateStorage(JsonObject added, JsonObject removed) { updateStorage(new fr.wseduc.webutils.collections.JsonArray().add(added), new JsonArray().add(removed)); }
From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java
License:Open Source License
void readDocuments(JsonArray docIds, List<String> categories, Handler<AsyncResult<JsonArray>> resultHandler) { MultiPartRequest marklogicRequest = restService.newMultipartRequest(); marklogicRequest.get(DOCUMENTS_URL).addParam(FORMAT, "json").addParams(CATEGORY, categories); docIds.stream().forEach(docId -> marklogicRequest.addParam(MarkLogicConstants.URI, (String) docId)); marklogicRequest.execute(response -> { SearchResponse searchResponse = new SearchResponse(response); searchResponse.endHandler(marklogicResponse -> { if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) { JsonArray documents = new JsonArray(); for (Document document : ((SearchResponse) marklogicResponse).getDocuments()) { documents.add(document.toJson()); }/*from w w w. j a va2 s . c o m*/ resultHandler.handle(Future.succeededFuture(documents)); } if (HttpResponseStatus.NOT_FOUND.code() == marklogicResponse.statusCode()) { resultHandler.handle( Future.failedFuture(new ResourceNotFoundException(marklogicResponse.statusMessage()))); } resultHandler.handle(Future.succeededFuture()); }); searchResponse.process(); }); }
From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java
License:Open Source License
void saveDocuments(Documents documents, TransformOptions transformOptions, Handler<AsyncResult<JsonArray>> resultHandler) { logger.debug("Start saveDocuments " + this); MultiPartRequest marklogicRequest = restService.newMultipartRequest(); marklogicRequest.post(DOCUMENTS_URL); documents.getDocumentsList().stream().forEach(marklogicRequest::addDocument); if (transformOptions != null) { marklogicRequest.addParam(TRANSFORM, transformOptions.getName()); if (transformOptions.hasParameters()) { for (Map.Entry<String, Object> param : transformOptions.getParameters().getMap().entrySet()) { marklogicRequest.addParam("trans:" + param.getKey(), (String) param.getValue()); }// www .j ava 2s . c om } } logger.debug("saveDocuments request:" + marklogicRequest); marklogicRequest.execute(response -> { BulkResponse bulkResponse = new BulkResponse(response); bulkResponse.endHandler(marklogicResponse -> { logger.debug("saveDocuments request endhandler:" + marklogicRequest); if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) { JsonArray resultDocs = new JsonArray(); for (Document document : ((BulkResponse) marklogicResponse).getDocuments()) { resultDocs.add(document.getUri()); } resultHandler.handle(Future.succeededFuture(resultDocs)); } }); bulkResponse.process(); }); }
From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java
License:Open Source License
private void save(Document document, TransformOptions transformOptions, Handler<AsyncResult<JsonArray>> resultHandler) { final Format format = Format.valueOf(document.getFormat()); MarkLogicRequest marklogicRequest = restService.newMarklogicRequest(); if (document.hasUri()) { marklogicRequest.put(DOCUMENTS_URL).addParam(MarkLogicConstants.URI, document.getUri()) .withResponseHandler(response -> { if (HttpResponseStatus.CREATED.code() == response.statusCode()) { String uri = response.getDocumentUri(); if (uri != null) { resultHandler.handle(Future.succeededFuture(new JsonArray().add(uri))); }/*w w w . j a va 2 s.co m*/ } else if (HttpResponseStatus.NO_CONTENT.code() == response.statusCode()) { resultHandler.handle(Future.succeededFuture(new JsonArray().add(document.getUri()))); } }); } else if (document.isNewDocument()) { marklogicRequest.post(DOCUMENTS_URL).addParam(EXTENSION, document.getExtension()) .addParam(DIRECTORY, document.getDirectory()).withResponseHandler(response -> { if (HttpResponseStatus.CREATED.code() == response.statusCode()) { String uri = response.getDocumentUri(); if (uri != null) { resultHandler.handle(Future.succeededFuture(new JsonArray().add(uri))); } } }); } if (document.hasQuality()) { marklogicRequest.addParam(QUALITY, Integer.toString(document.getQuality())); } if (document.hasProperties()) { for (Map.Entry<String, Object> property : document.getProperties().getMap().entrySet()) { marklogicRequest.addParam("prop:" + property.getKey(), (String) property.getValue()); } } if (document.hasPermissions()) { document.getPermissions().stream().forEach(perm -> { Permission permission = new Permission((JsonObject) perm); permission.getCapabilities().stream().forEach(capability -> marklogicRequest .addParam("perm:" + permission.getRoleName(), (String) capability)); }); } marklogicRequest.addParam(CATEGORY, CONTENT); if (document.hasCollections()) { document.getCollections().stream() .forEach(coll -> marklogicRequest.addParam(COLLECTION, (String) coll)); } marklogicRequest.addParam(FORMAT, format.getFormat()); if (Format.JSON == format) { marklogicRequest.withBody(((JsonObject) document.getContent())); } else if (Format.XML == format) { marklogicRequest.withBody((String) document.getContent(), Format.XML); } else if (Format.TEXT == format) { marklogicRequest.withBody((String) document.getContent(), Format.TEXT); } else if (Format.BINARY == format) { marklogicRequest.withBody((String) document.getContent(), Format.TEXT); } if (transformOptions != null) { marklogicRequest.addParam(TRANSFORM, transformOptions.getName()); if (transformOptions.hasParameters()) { for (Map.Entry<String, Object> param : transformOptions.getParameters().getMap().entrySet()) { marklogicRequest.addParam("trans:" + param.getKey(), (String) param.getValue()); } } } marklogicRequest.execute(); }
From source file:org.etourdot.vertx.marklogic.impl.MarkLogicSearchImpl.java
License:Open Source License
void searchDocuments(SearchOptions searchOptions, Handler<AsyncResult<JsonArray>> resultHandler) { requireNonNull(searchOptions, "searchOptions cannot be null"); requireNonNull(resultHandler, "resultHandler cannot be null"); doSeachDocPage(searchOptions, marklogicResponse -> { JsonArray documents = new JsonArray(); if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) { for (Document document : ((MultiPartResponse) marklogicResponse).getDocuments()) { documents.add(document.toJson()); }//from w w w .ja v a 2s. c om resultHandler.handle(Future.succeededFuture(documents)); } if (HttpResponseStatus.NOT_FOUND.code() == marklogicResponse.statusCode()) { resultHandler.handle( Future.failedFuture(new ResourceNotFoundException(marklogicResponse.statusMessage()))); } resultHandler.handle(Future.succeededFuture()); }); }
From source file:org.etourdot.vertx.marklogic.model.client.impl.DocumentImpl.java
License:Open Source License
public DocumentImpl() { this.category = new JsonArray(); }