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.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void delete(List<String> messagesId, Boolean deleteAll, UserInfos user,
        Handler<Either<String, JsonArray>> result) {
    SqlStatementsBuilder builder = new SqlStatementsBuilder();

    JsonArray values2 = new fr.wseduc.webutils.collections.JsonArray();
    JsonArray values3 = new fr.wseduc.webutils.collections.JsonArray();
    values2.add(user.getUserId());
    values3.add(user.getUserId());//from  w w  w. ja va  2 s  .c  o m

    String getTotalQuota = "SELECT coalesce(sum(um.total_quota), 0)::integer AS totalQuota FROM "
            + userMessageTable + " um " + "WHERE um.user_id = ? AND um.trashed = true";

    String deleteUserMessages = "DELETE FROM " + userMessageTable + " um "
            + "WHERE um.user_id = ? AND um.trashed = true";

    if (!deleteAll) {
        getTotalQuota += " AND um.message_id IN ";
        getTotalQuota += (generateInVars(messagesId, values2));
        deleteUserMessages += " AND um.message_id IN ";
        deleteUserMessages += (generateInVars(messagesId, values3));
    }

    builder.prepared(getTotalQuota, values2);
    builder.prepared(deleteUserMessages, values3);

    sql.transaction(builder.build(), SqlResult.validResultsHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void count(String folder, String restrain, Boolean unread, UserInfos user,
        Handler<Either<String, JsonObject>> result) {
    if (validationParamsError(user, result, folder))
        return;//from   w  ww .j av a  2  s .co  m

    JsonArray values = new fr.wseduc.webutils.collections.JsonArray();

    String messageConditionUnread = addMessageConditionUnread(folder, values, unread, user);
    values.add(user.getUserId());

    String query = "SELECT count(*) as count FROM " + userMessageTable + " um JOIN " + messageTable
            + " m ON (um.message_id = m.id" + messageConditionUnread + ") " + "WHERE user_id = ? ";

    query += addCompleteFolderCondition(values, restrain, unread, folder, user);

    if (restrain != null && unread) {
        query += " AND (m.from <> ? OR m.to @> ?::jsonb OR m.cc @> ?::jsonb) ";
        values.add(user.getUserId());
        values.add(new fr.wseduc.webutils.collections.JsonArray().add(user.getUserId()).toString());
        values.add(new fr.wseduc.webutils.collections.JsonArray().add(user.getUserId()).toString());
    }

    sql.prepared(query, values, SqlResult.validUniqueResultHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

private void callFindVisibles(UserInfos user, final String acceptLanguage,
        final Handler<Either<String, JsonObject>> result, final JsonObject visible, JsonObject params,
        String preFilter, String customReturn) {
    findVisibles(eb, user.getUserId(), customReturn, params, true, true, false, acceptLanguage, preFilter,
            new Handler<JsonArray>() {
                @Override/*  w  w w  . j ava  2 s  .co  m*/
                public void handle(JsonArray visibles) {
                    JsonArray users = new fr.wseduc.webutils.collections.JsonArray();
                    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;
                        if (j.getString("name") != null) {
                            j.remove("displayName");
                            UserUtils.groupDisplayName(j, acceptLanguage);
                            groups.add(j);
                        } else {
                            j.remove("name");
                            users.add(j);
                        }
                    }
                    result.handle(new Either.Right<String, JsonObject>(visible));
                }
            });
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void toggleUnread(List<String> messagesIds, boolean unread, UserInfos user,
        Handler<Either<String, JsonObject>> result) {
    if (validationParamsError(user, result))
        return;/*  w  w  w  . j  a  v  a  2  s .com*/

    JsonArray values = new fr.wseduc.webutils.collections.JsonArray();
    String query = "UPDATE " + userMessageTable + " " + "SET unread = ? "
            + "WHERE user_id = ? AND message_id IN " + Sql.listPrepared(messagesIds.toArray());

    values.add(unread);
    values.add(user.getUserId());
    for (String id : messagesIds) {
        values.add(id);
    }

    sql.prepared(query, values, SqlResult.validUniqueResultHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void listFolders(String parentId, UserInfos user, Handler<Either<String, JsonArray>> result) {
    if (validationError(user, result))
        return;//from   w w  w  .  j  a  v a  2 s.co  m

    String query = "SELECT f.* FROM " + folderTable + " AS f " + "WHERE f.user_id = ? AND f.trashed = false ";

    JsonArray values = new fr.wseduc.webutils.collections.JsonArray().add(user.getUserId());

    if (parentId == null) {
        query += "AND f.parent_id IS NULL";
    } else {
        query += "AND f.parent_id = ?";
        values.add(parentId);
    }

    sql.prepared(query, values, SqlResult.validResultHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void moveToFolder(List<String> messageIds, String folderId, UserInfos user,
        Handler<Either<String, JsonObject>> result) {
    if (validationParamsError(user, result, folderId))
        return;/* www .  j ava  2 s.co m*/

    JsonArray values = new fr.wseduc.webutils.collections.JsonArray();

    String query = "UPDATE " + userMessageTable + " AS um " + "SET folder_id = ? "
            + "WHERE um.user_id = ? AND um.message_id IN ";

    values.add(folderId).add(user.getUserId());

    query += generateInVars(messageIds, values);

    sql.prepared(query, values, SqlResult.validUniqueResultHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void backToSystemFolder(List<String> messageIds, UserInfos user,
        Handler<Either<String, JsonObject>> result) {
    if (validationParamsError(user, result))
        return;/*from   w ww .ja  v a 2s .c o m*/

    JsonArray values = new fr.wseduc.webutils.collections.JsonArray();

    String query = "UPDATE " + userMessageTable + " AS um " + "SET folder_id = NULL "
            + "WHERE um.user_id = ? AND um.message_id IN ";

    values.add(user.getUserId());

    query += generateInVars(messageIds, values);
    sql.prepared(query, values, SqlResult.validUniqueResultHandler(result));
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

@Override
public void deleteFolder(String folderId, Boolean deleteAll, UserInfos user,
        Handler<Either<String, JsonArray>> result) {
    if (!deleteAll) {
        if (validationError(user, result, folderId))
            return;
    }/*  w ww  .  j  av a2  s .  c o  m*/

    SqlStatementsBuilder builder = new SqlStatementsBuilder();

    /* Get all parent folders with recursion */

    String nonRecursiveTerm = "SELECT DISTINCT f.* FROM " + folderTable + " AS f " + "WHERE ";
    JsonArray recursiveValues = new fr.wseduc.webutils.collections.JsonArray();
    if (!deleteAll) {
        nonRecursiveTerm += "f.id = ? AND ";
        recursiveValues.add(folderId);
    }
    nonRecursiveTerm += "f.user_id = ? AND f.trashed = true ";
    recursiveValues.add(user.getUserId());

    String recursiveTerm = "SELECT f.* FROM " + folderTable + " AS f JOIN "
            + "parents ON f.parent_id = parents.id " + "WHERE f.user_id = ?";
    recursiveValues.add(user.getUserId());

    /* Get quota to free */

    String quotaRecursion = "WITH RECURSIVE parents AS ( " + nonRecursiveTerm + "UNION " + recursiveTerm + ") "
            + "SELECT COALESCE(sum(um.total_quota), 0)::integer AS totalQuota FROM parents JOIN "
            + userMessageTable + " um ON um.folder_id = parents.id AND um.user_id = parents.user_id ";

    builder.prepared(quotaRecursion, recursiveValues);

    /* Physically delete the folder, which will start a cascading delete process for parent folders, messages and attachments. */

    String deleteFolder = "DELETE FROM " + folderTable + " f " + "WHERE ";
    JsonArray values = new fr.wseduc.webutils.collections.JsonArray();
    if (!deleteAll) {
        deleteFolder += "f.id = ? AND ";
        values.add(folderId);
    }
    deleteFolder += "f.user_id = ? AND f.trashed = true";
    values.add(user.getUserId());

    builder.prepared(deleteFolder, values);

    /* Perform the transaction */

    sql.transaction(builder.build(), SqlResult.validResultsHandler(result));

}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

private String generateInVars(List<String> list, JsonArray values) {
    StringBuilder builder = new StringBuilder();
    builder.append("(");

    for (String item : list) {
        builder.append("?,");
        values.add(item);
    }//www . j av  a2s . co m
    if (list.size() > 0)
        builder.deleteCharAt(builder.length() - 1);
    builder.append(")");

    return builder.toString();
}

From source file:org.entcore.conversation.service.impl.SqlConversationService.java

License:Open Source License

private String addFolderCondition(String folder, JsonArray values, String userId) {
    String additionalWhere = "";
    switch (folder.toUpperCase()) {
    case "INBOX":
        additionalWhere = "AND (m.from <> ? OR m.to @> ?::jsonb OR m.cc @> ?::jsonb) AND m.state = ? AND um.trashed = false";
        additionalWhere += " AND um.folder_id IS NULL";
        values.add(userId);
        values.add(new fr.wseduc.webutils.collections.JsonArray().add(userId).toString());
        values.add(new fr.wseduc.webutils.collections.JsonArray().add(userId).toString());
        values.add("SENT");
        break;/*w ww  . jav  a2  s  .  c o m*/
    case "OUTBOX":
        additionalWhere = "AND m.from = ? AND m.state = ? AND um.trashed = false";
        additionalWhere += " AND um.folder_id IS NULL";
        values.add(userId);
        values.add("SENT");
        break;
    case "DRAFT":
        additionalWhere = "AND m.from = ? AND m.state = ? AND um.trashed = false";
        additionalWhere += " AND um.folder_id IS NULL";
        values.add(userId);
        values.add("DRAFT");
        break;
    case "TRASH":
        additionalWhere = "AND um.trashed = true";
        break;
    }
    return additionalWhere;
}