List of usage examples for io.vertx.core.json JsonArray add
public JsonArray add(Object value)
From source file:org.entcore.common.storage.impl.FileStorage.java
License:Open Source License
@Override public void writeToFileSystem(String[] ids, String destinationPath, JsonObject alias, final Handler<JsonObject> handler) { final AtomicInteger count = new AtomicInteger(ids.length); final JsonArray errors = new fr.wseduc.webutils.collections.JsonArray(); for (final String id : ids) { if (id == null || id.isEmpty()) { decrementWriteToFS(count, errors, handler); continue; }//www .jav a2 s . co m final String d = destinationPath + File.separator + alias.getString(id, id); try { copyFile(getPath(id), d, new Handler<JsonObject>() { @Override public void handle(JsonObject event) { if (!"ok".equals(event.getString("status"))) { errors.add(event); } decrementWriteToFS(count, errors, handler); } }); } catch (FileNotFoundException e) { errors.add(new JsonObject().put("status", "error").put("message", "invalid.path")); decrementWriteToFS(count, errors, handler); log.warn(e.getMessage(), e); } } }
From source file:org.entcore.common.storage.impl.PostgresqlApplicationStorage.java
License:Open Source License
@Override public void updateInfo(String fileId, FileInfos fileInfos, final Handler<AsyncResult<Integer>> handler) { JsonArray params = new fr.wseduc.webutils.collections.JsonArray(); final String query = "update " + table + " set " + generateColumns(fileInfos.toJsonExcludeEmpty(mapping), params) + "where " + mapping.getString("id", "id") + " = ?;"; params.add(fileId); sql.prepared(query, params, new Handler<Message<JsonObject>>() { @Override//from w w w.j ava 2 s . c om public void handle(Message<JsonObject> event) { Integer count = event.body().getInteger("rows"); if (count != null) { handler.handle(new DefaultAsyncResult<>(count)); } else { handler.handle(new DefaultAsyncResult<Integer>( new StorageException(event.body().getString("message")))); } } }); }
From source file:org.entcore.common.storage.impl.PostgresqlApplicationStorage.java
License:Open Source License
private String generateColumns(JsonObject j, JsonArray params) { StringBuilder sb = new StringBuilder(); for (String attr : j.fieldNames()) { sb.append(attr).append("= ?, "); params.add(j.getValue(attr)); }/*w w w . j a v a 2 s . c o m*/ return sb.toString().substring(0, sb.length() - 2); }
From source file:org.entcore.common.storage.impl.SwiftStorage.java
License:Open Source License
@Override public void removeFiles(JsonArray ids, final Handler<JsonObject> handler) { final AtomicInteger count = new AtomicInteger(ids.size()); final JsonArray errors = new fr.wseduc.webutils.collections.JsonArray(); for (final Object o : ids) { swiftClient.deleteFile(o.toString(), new Handler<AsyncResult<Void>>() { @Override//from ww w. ja va2 s.com public void handle(AsyncResult<Void> event) { if (event.failed()) { errors.add(new JsonObject().put("id", o.toString()).put("message", event.cause().getMessage())); } if (count.decrementAndGet() <= 0) { JsonObject j = new JsonObject(); if (errors.size() == 0) { handler.handle(j.put("status", "ok")); } else { handler.handle(j.put("status", "error").put("errors", errors)); } } } }); } }
From source file:org.entcore.common.storage.impl.SwiftStorage.java
License:Open Source License
@Override public void writeToFileSystem(String[] ids, String destinationPath, JsonObject alias, final Handler<JsonObject> handler) { final AtomicInteger count = new AtomicInteger(ids.length); final JsonArray errors = new fr.wseduc.webutils.collections.JsonArray(); for (final String id : ids) { if (id == null || id.isEmpty()) { count.decrementAndGet();//from w ww.j a v a2s. c o m continue; } String d = destinationPath + File.separator + alias.getString(id, id); swiftClient.writeToFileSystem(id, d, new Handler<AsyncResult<String>>() { @Override public void handle(AsyncResult<String> event) { if (event.failed()) { errors.add(new JsonObject().put("id", id).put("message", event.cause().getMessage())); } if (count.decrementAndGet() <= 0) { JsonObject j = new JsonObject(); if (errors.size() == 0) { handler.handle(j.put("status", "ok")); } else { handler.handle( j.put("status", "error").put("errors", errors).put("message", errors.encode())); } } } }); } }
From source file:org.entcore.common.user.UserUtils.java
License:Open Source License
public static JsonObject translateAndGroupVisible(JsonArray visibles, String acceptLanguage, boolean returnGroupType) { final JsonObject visible = new JsonObject(); final JsonArray users = new fr.wseduc.webutils.collections.JsonArray(); final JsonArray groups = new fr.wseduc.webutils.collections.JsonArray(); visible.put("groups", groups).put("users", users); for (Object o : visibles) { if (!(o instanceof JsonObject)) continue; JsonObject j = (JsonObject) o;//from ww w. ja v a2s . com if (j.getString("name") != null) { j.remove("displayName"); j.remove("profile"); j.remove("mood"); if (returnGroupType) { Object gt = j.remove("groupType"); Object gp = j.remove("groupProfile"); if (gt instanceof Iterable) { for (Object gti : (Iterable) gt) { if (gti != null && !"Group".equals(gti) && gti.toString().endsWith("Group")) { j.put("groupType", gti); if ("ProfileGroup".equals(gti)) { j.put("profile", gp); } break; } } } } j.put("sortName", j.getString("name")); UserUtils.groupDisplayName(j, acceptLanguage); groups.add(j); } else { if (returnGroupType) { j.remove("groupProfile"); j.remove("groupType"); } j.remove("name"); j.remove("nbUsers"); users.add(j); } } return visible; }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
private void translateGroupsNames(JsonObject message, HttpServerRequest request) { JsonArray d3 = new fr.wseduc.webutils.collections.JsonArray(); for (Object o2 : getOrElse(message.getJsonArray("displayNames"), new fr.wseduc.webutils.collections.JsonArray())) { if (!(o2 instanceof String)) { continue; }/* w w w .j av a 2s . co m*/ String[] a = ((String) o2).split("\\$"); if (a.length != 4) { continue; } JsonArray d2 = new fr.wseduc.webutils.collections.JsonArray().add(a[0]); if (a[2] != null && !a[2].trim().isEmpty()) { final String groupDisplayName = (a[3] != null && !a[3].trim().isEmpty()) ? a[3] : null; d2.add(UserUtils.groupDisplayName(a[2], groupDisplayName, I18n.acceptLanguage(request))); } else { d2.add(a[1]); } d3.add(d2); } message.put("displayNames", d3); JsonArray toName = message.getJsonArray("toName"); if (toName != null) { JsonArray d2 = new fr.wseduc.webutils.collections.JsonArray(); message.put("toName", d2); for (Object o : toName) { if (!(o instanceof String)) { continue; } d2.add(UserUtils.groupDisplayName((String) o, null, I18n.acceptLanguage(request))); } } JsonArray ccName = message.getJsonArray("ccName"); if (ccName != null) { JsonArray d2 = new fr.wseduc.webutils.collections.JsonArray(); message.put("ccName", d2); for (Object o : ccName) { if (!(o instanceof String)) { continue; } d2.add(UserUtils.groupDisplayName((String) o, null, I18n.acceptLanguage(request))); } } }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Get("threads/list") @SecuredAction(value = "conversation.threads.list") public void listThreads(final HttpServerRequest request) { final String p = Utils.getOrElse(request.params().get("page"), "0", false); getUserInfos(eb, request, new Handler<UserInfos>() { @Override//from w w w . jav a 2 s . c o m public void handle(final UserInfos user) { if (user != null) { int page; try { page = Integer.parseInt(p); } catch (NumberFormatException e) { page = 0; } conversationService.listThreads(user, page, new Handler<Either<String, JsonArray>>() { @Override public void handle(Either<String, JsonArray> r) { if (r.isRight()) { HashMap<String, JsonArray> test = new HashMap<String, JsonArray>(); JsonObject tmp; String threadId; JsonArray result = new fr.wseduc.webutils.collections.JsonArray(); for (Object o : r.right().getValue()) { if (!(o instanceof JsonObject)) { continue; } tmp = (JsonObject) o; translateGroupsNames(tmp, request); threadId = tmp.getString("thread_id"); if (threadId != null) { if (test.containsKey(threadId)) test.get(threadId).add(tmp); else test.put(threadId, new fr.wseduc.webutils.collections.JsonArray().add(tmp)); } else { result.add(new fr.wseduc.webutils.collections.JsonArray().add(tmp)); } } for (JsonArray array : test.values()) { result.add(array); } renderJson(request, result); } else { JsonObject error = new JsonObject().put("error", r.left().getValue()); renderJson(request, error, 400); } } }); } else { unauthorized(request); } } }); }
From source file:org.entcore.conversation.filters.FoldersMessagesFilter.java
License:Open Source License
@Override public void authorize(final HttpServerRequest request, Binding binding, final UserInfos user, final Handler<Boolean> handler) { super.authorize(request, binding, user, new Handler<Boolean>() { @Override/* ww w. jav a2 s . c o m*/ public void handle(Boolean event) { if (event) { RequestUtils.bodyToJson(request, new Handler<JsonObject>() { public void handle(final JsonObject body) { final List<String> messageIds = body .getJsonArray("id", new fr.wseduc.webutils.collections.JsonArray()).getList(); String usersQuery = "SELECT count(distinct um) AS number FROM conversation.usermessages um " + "WHERE um.user_id = ? AND um.message_id IN " + Sql.listPrepared(messageIds.toArray()); JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(user.getUserId()); for (String id : messageIds) { values.add(id); } request.pause(); sql.prepared(usersQuery, values, SqlResult.validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { public void handle(Either<String, JsonObject> event) { request.resume(); if (event.isLeft()) { handler.handle(false); return; } int count = event.right().getValue().getInteger("number", 0); handler.handle(count == messageIds.size()); } })); } }); } else { handler.handle(false); return; } } }); }
From source file:org.entcore.conversation.filters.MultipleMessageUserFilter.java
License:Open Source License
protected void checkMessages(final HttpServerRequest request, final List<String> messageIds, UserInfos user, final Handler<Boolean> handler) { String query = "SELECT count(distinct um) AS number FROM conversation.usermessages um " + "WHERE um.user_id = ? AND um.message_id IN " + Sql.listPrepared(messageIds.toArray()); JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(user.getUserId()); messageIds.forEach(id -> values.add(id)); request.pause();//from w w w. j a v a 2s . c om sql.prepared(query, values, SqlResult.validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { public void handle(Either<String, JsonObject> event) { request.resume(); if (event.isLeft()) { handler.handle(false); return; } int count = event.right().getValue().getInteger("number", 0); handler.handle(count == messageIds.size()); } })); }