Example usage for io.vertx.core.json JsonArray add

List of usage examples for io.vertx.core.json JsonArray add

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray add.

Prototype

public JsonArray add(Object value) 

Source Link

Document

Add an Object to the JSON array.

Usage

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());
        }
    }));
}