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

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

Introduction

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

Prototype

public List getList() 

Source Link

Document

Get the unerlying List

Usage

From source file:org.entcore.conversation.controllers.ConversationController.java

License:Open Source License

@Put("trash")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(MultipleMessageUserFilter.class)
public void trash(final HttpServerRequest request) {

    bodyToJson(request, new Handler<JsonObject>() {
        @Override//  ww  w  .ja v a  2s .  c  o m
        public void handle(JsonObject body) {
            JsonArray ids = body.getJsonArray("id");
            if (ids == null || ids.isEmpty()) {
                badRequest(request);
                return;
            }

            getUserInfos(eb, request, new Handler<UserInfos>() {
                @Override
                public void handle(final UserInfos user) {
                    if (user != null) {
                        conversationService.trash(ids.getList(), user, defaultResponseHandler(request));
                    } else {
                        unauthorized(request);
                    }
                }
            });
        }
    });
}

From source file:org.entcore.conversation.controllers.ConversationController.java

License:Open Source License

@Put("restore")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(MultipleMessageUserFilter.class)
public void restore(final HttpServerRequest request) {

    bodyToJson(request, new Handler<JsonObject>() {
        @Override// ww  w  . j a  va2 s.  c o m
        public void handle(JsonObject body) {
            JsonArray ids = body.getJsonArray("id");
            if (ids == null || ids.isEmpty()) {
                badRequest(request);
                return;
            }

            getUserInfos(eb, request, new Handler<UserInfos>() {
                @Override
                public void handle(final UserInfos user) {
                    if (user != null) {
                        conversationService.restore(ids.getList(), user, defaultResponseHandler(request));
                    } else {
                        unauthorized(request);
                    }
                }
            });
        }
    });
}

From source file:org.entcore.conversation.controllers.ConversationController.java

License:Open Source License

@Put("delete")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(MultipleMessageUserFilter.class)
public void delete(final HttpServerRequest request) {
    bodyToJson(request, new Handler<JsonObject>() {
        @Override//ww w  .ja v a 2s. c  o m
        public void handle(JsonObject body) {
            JsonArray ids = body.getJsonArray("id");
            if (ids == null || ids.isEmpty()) {
                badRequest(request);
                return;
            }
            deleteMessages(request, ids.getList(), false);
        }
    });
}

From source file:org.entcore.conversation.controllers.ConversationController.java

License:Open Source License

@Post("toggleUnread")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(MultipleMessageUserFilter.class)
public void toggleUnread(final HttpServerRequest request) {
    bodyToJson(request, new Handler<JsonObject>() {
        @Override//w  ww  .  ja  v a2  s .c  om
        public void handle(JsonObject body) {
            final JsonArray ids = body.getJsonArray("id");
            final Boolean unread = body.getBoolean("unread");
            if (ids == null || ids.isEmpty() || unread == null) {
                badRequest(request);
                return;
            }
            UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {
                @Override
                public void handle(final UserInfos user) {
                    if (user != null) {
                        conversationService.toggleUnread(ids.getList(), unread, user,
                                defaultResponseHandler(request));
                    } else {
                        unauthorized(request);
                    }
                }
            });
        }
    });
}

From source file:org.entcore.conversation.controllers.ConversationController.java

License:Open Source License

@Put("move/userfolder/:folderId")
@SecuredAction(value = "", type = ActionType.RESOURCE)
@ResourceFilter(FoldersMessagesFilter.class)
public void move(final HttpServerRequest request) {
    final String folderId = request.params().get("folderId");
    bodyToJson(request, new Handler<JsonObject>() {
        @Override//from w  w  w .  j  a  v  a2  s.co  m
        public void handle(JsonObject body) {
            final JsonArray messageIds = body.getJsonArray("id");
            if (messageIds == null || messageIds.size() == 0) {
                badRequest(request);
                return;
            }

            Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() {
                public void handle(final UserInfos user) {
                    if (user == null) {
                        unauthorized(request);
                        return;
                    }
                    conversationService.moveToFolder(messageIds.getList(), folderId, user,
                            defaultResponseHandler(request));
                }
            };

            UserUtils.getUserInfos(eb, request, userInfosHandler);

        }
    });
}

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

License:Open Source License

@Override
public void deleteUsers(JsonArray users) {
    JsonArray userIds = new fr.wseduc.webutils.collections.JsonArray();
    for (Object o : users) {
        if (!(o instanceof JsonObject))
            continue;
        userIds.add(((JsonObject) o).getString("id"));
    }//ww w. jav  a2s  .co  m

    SqlStatementsBuilder builder = new SqlStatementsBuilder();

    String unusedAttachments = "WITH unusedAtts AS ("
            + "SELECT DISTINCT attachment_id AS id FROM conversation.usermessagesattachments uma "
            + "GROUP BY attachment_id " + "HAVING every(user_id IN " + Sql.listPrepared(userIds.getList())
            + ") " + ") SELECT "
            + "CASE WHEN COUNT(id) = 0 THEN '[]' ELSE json_agg(distinct id) END AS attachmentIds "
            + "FROM unusedAtts u";
    builder.prepared(unusedAttachments, userIds);

    String deleteFolder = "DELETE FROM conversation.folders f " + "WHERE f.user_id IN "
            + Sql.listPrepared(userIds.getList());
    builder.prepared(deleteFolder, userIds);

    String deleteUserMessages = "DELETE FROM conversation.usermessages um " + "WHERE um.user_id IN "
            + Sql.listPrepared(userIds.getList());
    builder.prepared(deleteUserMessages, userIds);

    String setFrom = "UPDATE conversation.messages " + "SET " + "\"from\" = '', " + "\"fromName\" = ?, "
            + "\"displayNames\" = \"displayNames\" - (? || '$' || ? || '$ $ ') " + "WHERE \"from\" = ?";

    String setTO = "UPDATE conversation.messages " + "SET " + "\"to\" = \"to\" - ?, "
            + "\"toName\" = COALESCE(\"toName\", '[]')::jsonb || (?)::jsonb, "
            + "\"displayNames\" = \"displayNames\" - (? || '$' || ? || '$ $ ') " + "WHERE \"to\" @> (?)::jsonb";

    String setCC = "UPDATE conversation.messages " + "SET " + "\"cc\" = \"cc\" - ?, "
            + "\"ccName\" = COALESCE(\"ccName\", '[]')::jsonb || (?)::jsonb, "
            + "\"displayNames\" = \"displayNames\" - (? || '$' || ? || '$ $ ') " + "WHERE \"cc\" @> (?)::jsonb";

    for (Object o : users) {
        if (!(o instanceof JsonObject))
            continue;
        JsonObject user = (JsonObject) o;
        JsonArray paramsToCc = new fr.wseduc.webutils.collections.JsonArray();
        JsonArray paramsFrom = new fr.wseduc.webutils.collections.JsonArray();

        paramsToCc.add(user.getString("id", ""));
        paramsToCc.add(new fr.wseduc.webutils.collections.JsonArray().add(user.getString("displayName", ""))
                .toString());
        paramsToCc.add(user.getString("id", ""));
        paramsToCc.add(user.getString("displayName", ""));
        paramsToCc.add(new fr.wseduc.webutils.collections.JsonArray().add(user.getString("id", "")).toString());

        paramsFrom.add(user.getString("displayName", ""));
        paramsFrom.add(user.getString("id", ""));
        paramsFrom.add(user.getString("displayName", ""));
        paramsFrom.add(user.getString("id", ""));

        builder.prepared(setTO, paramsToCc);
        builder.prepared(setCC, paramsToCc);
        builder.prepared(setFrom, paramsFrom);
    }
    sql.transaction(builder.build(), new DeliveryOptions().setSendTimeout(timeout),
            SqlResult.validResultsHandler(new Handler<Either<String, JsonArray>>() {
                public void handle(Either<String, JsonArray> event) {
                    if (event.isLeft()) {
                        log.error("Error deleting conversation data : " + event.left().getValue());
                        return;
                    }

                    JsonArray results = event.right().getValue();
                    JsonArray attachmentIds = results.getJsonArray(0).size() > 0
                            ? new fr.wseduc.webutils.collections.JsonArray(
                                    results.getJsonArray(0).getJsonObject(0).getString("attachmentIds", "[]"))
                            : new fr.wseduc.webutils.collections.JsonArray();

                    for (Object attachmentObj : attachmentIds) {
                        final String attachmentId = (String) attachmentObj;
                        storage.removeFile(attachmentId, new Handler<JsonObject>() {
                            @Override
                            public void handle(JsonObject event) {
                                if (!"ok".equals(event.getString("status"))) {
                                    log.error("[" + ConversationRepositoryEvents.class.getSimpleName()
                                            + "] Error while tying to delete attachment file (_id: {"
                                            + attachmentId + "})");
                                }
                            }
                        });
                    }
                }
            }, "attachmentIds"));
}

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

License:Open Source License

@Override
public void handle(Long event) {
    final Sql sql = Sql.getInstance();
    final SqlStatementsBuilder builder = new SqlStatementsBuilder();
    builder.raw(DELETE_ORPHAN_MESSAGE);//from w  w w  .j a v  a2 s  .  co  m
    builder.raw(SELECT_ORPHAN_ATTACHMENT);
    sql.transaction(builder.build(), new DeliveryOptions().setSendTimeout(TIMEOUT),
            SqlResult.validResultHandler(1, new Handler<Either<String, JsonArray>>() {
                @Override
                public void handle(Either<String, JsonArray> res) {
                    if (res.isRight()) {
                        log.info("Successful delete orphan conversation messages.");
                        final JsonArray attachments = res.right().getValue();
                        if (attachments != null && attachments.size() > 0) {
                            log.info("Orphan attachments : " + attachments.encode());
                            JsonArray ids = new fr.wseduc.webutils.collections.JsonArray();
                            for (Object attObj : attachments) {
                                if (!(attObj instanceof JsonObject))
                                    continue;
                                JsonObject unusedAttachment = (JsonObject) attObj;
                                final String attachmentId = unusedAttachment.getString("orphanid");
                                ids.add(attachmentId);
                                storage.removeFile(attachmentId, new Handler<JsonObject>() {
                                    public void handle(JsonObject event) {
                                        if (!"ok".equals(event.getString("status"))) {
                                            log.error("Error while tying to delete attachment file (_id: {"
                                                    + attachmentId + "})");
                                        }
                                    }
                                });
                            }
                            final String deletOrphanAttachments = "delete from conversation.attachments where id IN "
                                    + Sql.listPrepared(ids.getList());
                            sql.prepared(deletOrphanAttachments, ids,
                                    new DeliveryOptions().setSendTimeout(TIMEOUT),
                                    new Handler<Message<JsonObject>>() {
                                        @Override
                                        public void handle(Message<JsonObject> event) {
                                            if (!"ok".equals(event.body().getString("status"))) {
                                                log.error("Error deleting orphan attachments : "
                                                        + event.body().getString("message", ""));
                                            } else {
                                                log.info("Successful delete orphan conversation attachments.");
                                            }
                                        }
                                    });
                        }
                    } else {
                        log.error("Orphan conversation error : " + res.left().getValue());
                    }
                }
            }));
}

From source file:org.entcore.feeder.aaf.PersonnelImportProcessing.java

License:Open Source License

protected String detectProfile(JsonObject object) {
    Boolean isTeacher = object.getBoolean("isTeacher");
    if (isTeacher != null) {
        return isTeacher ? TEACHER_PROFILE_EXTERNAL_ID : PERSONNEL_PROFILE_EXTERNAL_ID;
    } else {//  ww w  .  ja va2  s  . c om
        JsonArray functions = object.getJsonArray("functions");
        if (object.getBoolean("teaches", false)) {
            return TEACHER_PROFILE_EXTERNAL_ID;
        } else if (functions != null && functions.size() > 0) {
            for (Object function : functions.getList()) {
                if (function != null
                        && (function.toString().contains("$DOC$") || function.toString().contains("$ENS$"))) {
                    return TEACHER_PROFILE_EXTERNAL_ID;
                }
            }
        }
        return PERSONNEL_PROFILE_EXTERNAL_ID;
    }
}

From source file:org.entcore.feeder.aaf.StudentImportProcessing.java

License:Open Source License

@Override
public void process(JsonObject object) {
    createClasses(object.getJsonArray("classes"));
    createGroups(object.getJsonArray("groups"));
    JsonArray r = parseRelativeField(object.getJsonArray("relative"));
    if (r != null) {
        resp.addAll(r.getList());
    }/*from  ww  w  . j a v  a 2 s .  co m*/
    object.put("profiles", new fr.wseduc.webutils.collections.JsonArray().add("Student"));
    importer.createOrUpdateStudent(object, DefaultProfiles.STUDENT_PROFILE_EXTERNAL_ID, null, null, null, null,
            null, true, false);
}

From source file:org.entcore.feeder.dictionary.structures.Structure.java

License:Open Source License

public synchronized Object[] addJointure(String externalId) {
    if (struct != null) {
        JsonArray joinKey = struct.getJsonArray("joinKey");
        if (joinKey == null) {
            joinKey = new fr.wseduc.webutils.collections.JsonArray();
            struct.put("joinKey", joinKey);
        }/* ww  w .  ja v a  2s  .  c om*/
        joinKey.add(externalId);
        String query = "MATCH (s:Structure {externalId: {externalId}}) " + "SET s.joinKey = {joinKey} ";
        JsonObject params = new JsonObject().put("joinKey", joinKey).put("externalId", getExternalId());
        getTransaction().add(query, params);
        return joinKey.getList().toArray();
    }
    return null;
}