List of usage examples for io.vertx.core.json JsonObject remove
public Object remove(String key)
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void list(String blogId, final StateType state, final UserInfos user, final Integer page, final int limit, final String search, final Handler<Either<String, JsonArray>> result) { final QueryBuilder accessQuery = QueryBuilder.start("blog.$id").is(blogId).put("state").is(state.name()); final JsonObject sort = new JsonObject().put("modified", -1); final JsonObject projection = defaultKeys.copy(); projection.remove("content"); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override/*from w w w . j a v a 2 s . com*/ public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; final QueryBuilder query = getQueryListBuilder(search, result, accessQuery); if (query != null) { if (StateType.PUBLISHED.equals(state)) { if (limit > 0 && page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, 0, limit, limit, finalHandler); } else if (page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, finalHandler); } else { final int skip = (0 == page) ? -1 : page * limit; final JsonObject sortPag = new JsonObject().put("sorted", -1); mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sortPag, projection, skip, limit, limit, finalHandler); } } else { QueryBuilder query2 = getDefautQueryBuilderForList(blogId, user, true); mongo.count("blogs", MongoQueryBuilder.build(query2), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if ((res != null && "ok".equals(res.getString("status")) && 1 != res.getInteger("count")) || StateType.DRAFT.equals(state)) { accessQuery.put("author.userId").is(user.getUserId()); } final QueryBuilder listQuery = getQueryListBuilder(search, result, accessQuery); if (limit > 0 && page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sort, projection, 0, limit, limit, finalHandler); } else if (page == null) { mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sort, projection, finalHandler); } else { final JsonObject sortPag = new JsonObject().put("sorted", -1); final int skip = (0 == page) ? -1 : page * limit; mongo.find(POST_COLLECTION, MongoQueryBuilder.build(listQuery), sortPag, projection, skip, limit, limit, finalHandler); } } }); } } }
From source file:org.entcore.blog.services.impl.DefaultPostService.java
License:Open Source License
@Override public void listOne(String blogId, String postId, final UserInfos user, final Handler<Either<String, JsonArray>> result) { final QueryBuilder query = QueryBuilder.start("blog.$id").is(blogId).put("_id").is(postId); final QueryBuilder isManagerQuery = getDefautQueryBuilderForList(blogId, user, true); final JsonObject sort = new JsonObject().put("modified", -1); final JsonObject projection = defaultKeys.copy(); projection.remove("content"); final Handler<Message<JsonObject>> finalHandler = new Handler<Message<JsonObject>>() { @Override/* w w w . j a v a 2 s. c o m*/ public void handle(Message<JsonObject> event) { result.handle(Utils.validResults(event)); } }; mongo.count("blogs", MongoQueryBuilder.build(isManagerQuery), new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonObject res = event.body(); if (res == null || !"ok".equals(res.getString("status"))) { result.handle(new Either.Left<String, JsonArray>(event.body().encodePrettily())); return; } boolean isManager = 1 == res.getInteger("count", 0); query.or(QueryBuilder.start("state").is(StateType.PUBLISHED.name()).get(), QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.DRAFT.name()).get()) .get(), isManager ? QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get() : QueryBuilder.start() .and(QueryBuilder.start("author.userId").is(user.getUserId()).get(), QueryBuilder.start("state").is(StateType.SUBMITTED.name()).get()) .get()); mongo.find(POST_COLLECTION, MongoQueryBuilder.build(query), sort, projection, finalHandler); } }); }
From source file:org.entcore.cas.data.EntCoreDataHandler.java
License:Open Source License
private AuthCas deserialize(JsonObject res) { if (res == null) { return null; }/*w w w . ja va 2 s .c o m*/ res.remove("updatedAt"); try { return mapper.readValue(res.encode(), AuthCas.class); } catch (IOException e) { log.error(e.getMessage(), e); return null; } }
From source file:org.entcore.cas.services.DefaultRegisteredService.java
License:Open Source License
protected void prepareUser(final User user, final String userId, String service, final JsonObject data) { if (principalAttributeName != null) { user.setUser(data.getString(principalAttributeName)); data.remove(principalAttributeName); } else {/*from www. j av a 2 s. c o m*/ user.setUser(userId); } data.remove("password"); Map<String, String> attributes = new HashMap<>(); for (String attr : data.fieldNames()) { attributes.put(attr, data.getValue(attr).toString()); } user.setAttributes(attributes); }
From source file:org.entcore.cas.services.EliotRegisteredService.java
License:Open Source License
@Override protected void prepareUser(final User user, final String userId, String service, final JsonObject data) { if (principalAttributeName != null) { user.setUser(data.getString(principalAttributeName)); data.remove(principalAttributeName); } else {//ww w.ja v a 2 s. c o m user.setUser(userId); } }
From source file:org.entcore.common.elasticsearch.BulkRequest.java
License:Open Source License
public void index(JsonObject element, JsonObject metadata) { if (element == null) return;/* w w w. j ava 2 s.c o m*/ if (metadata == null) { metadata = new JsonObject(); final Object id = element.remove("_id"); if (id != null) { metadata.put("_id", id); } } request.write(new JsonObject().put("index", metadata).encode() + "\n" + element.encode() + "\n"); }
From source file:org.entcore.common.neo4j.Neo4jRest.java
License:Open Source License
public void executeTransaction(final JsonArray statements, final Integer transactionId, final boolean commit, final boolean allowRetry, final Handler<JsonObject> handler) { String uri = "/transaction"; if (transactionId != null) { uri += "/" + transactionId; }/*from w ww . j av a 2s .c o m*/ if (commit) { uri += "/commit"; } try { sendRequest(uri, new JsonObject().put("statements", statements), new Handler<HttpClientResponse>() { @Override public void handle(final HttpClientResponse resp) { resp.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer b) { logger.debug(b.toString()); if (resp.statusCode() != 404 && resp.statusCode() != 500) { JsonObject json = new JsonObject(b.toString("UTF-8")); JsonArray results = json.getJsonArray("results"); if (json.getJsonArray("errors", new fr.wseduc.webutils.collections.JsonArray()) .size() == 0 && results != null) { JsonArray out = new fr.wseduc.webutils.collections.JsonArray(); for (Object o : results) { if (!(o instanceof JsonObject)) continue; out.add(transformJson((JsonObject) o)); } json.put("results", out); String commit = json.getString("commit"); if (commit != null) { String[] c = commit.split("/"); if (c.length > 2) { json.put("transactionId", Integer.parseInt(c[c.length - 2])); } } json.remove("errors"); handler.handle(json); } else { if (transactionId == null && commit && allowRetry && json.getJsonArray("errors") != null && json.getJsonArray("errors").size() > 0) { JsonArray errors = json.getJsonArray("errors"); for (Object o : errors) { if (!(o instanceof JsonObject)) continue; switch (((JsonObject) o).getString("code", "")) { case "Neo.TransientError.Transaction.ConstraintsChanged": case "Neo.TransientError.Transaction.DeadlockDetected": case "Neo.TransientError.Transaction.InstanceStateChanged": case "Neo.TransientError.Schema.SchemaModifiedConcurrently": executeTransaction(statements, transactionId, commit, false, handler); if (logger.isDebugEnabled()) { logger.debug("Retry transaction : " + statements.encode()); } return; } } } handler.handle( new JsonObject().put("message", json.getJsonArray("errors", new fr.wseduc.webutils.collections.JsonArray()) .encode())); } } else { handler.handle(new JsonObject().put("message", resp.statusMessage() + " : " + b.toString())); } } }); } }); } catch (Neo4jConnectionException e) { ExceptionUtils.exceptionToJson(e); } }
From source file:org.entcore.common.neo4j.Neo4jRest.java
License:Open Source License
@Override public void rollbackTransaction(int transactionId, final Handler<JsonObject> handler) { try {// w w w . ja v a2 s .c om HttpClientRequest req = nodeManager.getClient().delete(basePath + "/transaction/" + transactionId, new Handler<HttpClientResponse>() { @Override public void handle(final HttpClientResponse resp) { resp.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer b) { logger.debug(b.toString()); if (resp.statusCode() != 404 && resp.statusCode() != 500) { JsonObject json = new JsonObject(b.toString("UTF-8")); if (json.getJsonArray("errors", new fr.wseduc.webutils.collections.JsonArray()).size() == 0) { json.remove("errors"); handler.handle(json); } else { handler.handle(new JsonObject().put("message", json.getJsonArray("errors", new fr.wseduc.webutils.collections.JsonArray()) .encode())); } } else { handler.handle(new JsonObject().put("message", resp.statusMessage())); } } }); } }); req.headers().add("Accept", "application/json; charset=UTF-8"); req.exceptionHandler(e -> logger.error("Error rollbacking transaction : " + transactionId, e)); req.end(); } catch (Neo4jConnectionException e) { ExceptionUtils.exceptionToJson(e); } }
From source file:org.entcore.common.neo4j.Neo4jResult.java
License:Open Source License
public static Either<String, JsonObject> fullNodeMerge(String nodeAttr, Message<JsonObject> res, String... otherNodes) {/*from w w w. ja v a 2 s . c o m*/ Either<String, JsonObject> r = validUniqueResult(res); if (r.isRight() && r.right().getValue().size() > 0) { JsonObject j = r.right().getValue(); JsonObject data = j.getJsonObject(nodeAttr, new JsonObject()).getJsonObject("data"); if (otherNodes != null && otherNodes.length > 0) { for (String attr : otherNodes) { Object e = j.getValue(attr); if (e == null) continue; if (e instanceof JsonObject) { data.put(attr, ((JsonObject) e).getJsonObject("data")); } else if (e instanceof JsonArray) { JsonArray a = new fr.wseduc.webutils.collections.JsonArray(); for (Object o : (JsonArray) e) { if (!(o instanceof JsonObject)) continue; JsonObject jo = (JsonObject) o; a.add(jo.getJsonObject("data")); } data.put(attr, a); } j.remove(attr); } } if (data != null) { j.remove(nodeAttr); return new Either.Right<>(data.mergeIn(j)); } } return r; }
From source file:org.entcore.common.notification.TimelineHelper.java
License:Open Source License
public void notifyTimeline(final HttpServerRequest req, final String notificationName, UserInfos sender, final List<String> recipients, String resource, String subResource, final JsonObject params, final boolean disableAntiFlood) { notificationsLoader.getNotification(notificationName, notification -> { JsonArray r = new fr.wseduc.webutils.collections.JsonArray(); for (String userId : recipients) { r.add(new JsonObject().put("userId", userId).put("unread", 1)); }/* w w w . j av a 2 s. c o m*/ final JsonObject event = new JsonObject().put("action", "add") .put("type", notification.getString("type")) .put("event-type", notification.getString("event-type")).put("recipients", r) .put("recipientsIds", new fr.wseduc.webutils.collections.JsonArray(recipients)); if (resource != null) { event.put("resource", resource); } if (sender != null) { event.put("sender", sender.getUserId()); } if (subResource != null && !subResource.trim().isEmpty()) { event.put("sub-resource", subResource); } if (disableAntiFlood || params.getBoolean("disableAntiFlood", false)) { event.put("disableAntiFlood", true); } Long date = params.getLong("timeline-publish-date"); if (date != null) { event.put("date", new JsonObject().put("$date", date)); params.remove("timeline-publish-date"); } event.put("pushNotif", params.remove("pushNotif")); HttpServerRequest request; if (req == null) { request = new JsonHttpServerRequest(new JsonObject()); } else { request = req; } event.put("params", params).put("notificationName", notificationName).put("notification", notification) .put("request", new JsonObject().put("headers", new JsonObject().put("Host", Renders.getHost(request)) .put("X-Forwarded-Proto", Renders.getScheme(request)) .put("Accept-Language", request.headers().get("Accept-Language")))); eb.send(TIMELINE_ADDRESS, event, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { public void handle(Message<JsonObject> event) { JsonObject result = event.body(); if ("error".equals(result.getString("status", "error"))) { log.error("Error in timeline notification : " + result.getString("message")); } } })); }); }