List of usage examples for io.vertx.core.json JsonObject getLong
public Long getLong(String key, Long def)
From source file:org.entcore.auth.services.impl.FranceConnectServiceProvider.java
License:Open Source License
@Override public void executeFederate(final JsonObject payload, final Handler<Either<String, Object>> handler) { if (iss.equals(payload.getString("iss")) && payload.getLong("exp", 0l) > (System.currentTimeMillis() / 1000) && isNotEmpty(payload.getString("sub"))) { neo4j.execute(QUERY_SUB_FC, payload, validUniqueResultHandler(new Handler<Either<String, JsonObject>>() { @Override/*www . j a va 2 s. co m*/ public void handle(final Either<String, JsonObject> event) { if (event.isRight() && event.right().getValue().getBoolean("blockedProfile", false)) { handler.handle(new Either.Left<String, Object>("blocked.profile")); } else if (event.isRight() && event.right().getValue().size() > 0) { handler.handle(new Either.Right<String, Object>(event.right().getValue())); } else { federateWithPivot(payload, handler); } } })); } else { handler.handle(new Either.Left<String, Object>("invalid.openid.payload")); } }
From source file:org.entcore.common.neo4j.Neo4j.java
License:Open Source License
public void init(Vertx vertx, JsonObject config) { this.eb = Server.getEventBus(vertx); JsonArray serverUris = config.getJsonArray("server-uris"); String serverUri = config.getString("server-uri"); if (serverUris == null && serverUri != null) { serverUris = new fr.wseduc.webutils.collections.JsonArray().add(serverUri); }/*from w w w .j a va2 s .com*/ if (serverUris != null) { try { URI[] uris = new URI[serverUris.size()]; for (int i = 0; i < serverUris.size(); i++) { uris[i] = new URI(serverUris.getString(i)); } database = new Neo4jRest(uris, config.getBoolean("slave-readonly", false), vertx, config.getLong("checkDelay", 3000l), config.getInteger("poolSize", 16), config.getBoolean("keepAlive", true), config); } catch (Exception e) { log.error(e.getMessage(), e); } } else { log.error("Invalid Neo4j URI"); } }
From source file:org.entcore.common.sql.SqlResult.java
License:Open Source License
private static Either<String, JsonObject> validRows(JsonObject body) { if ("ok".equals(body.getString("status"))) { long rows = body.getLong("rows", 0l); JsonObject result = new JsonObject(); if (rows > 0) { result.put("rows", rows); }//from www .ja va2 s. c o m return new Either.Right<>(result); } else { return new Either.Left<>(body.getString("message", "")); } }
From source file:org.entcore.common.storage.impl.GridfsStorage.java
License:Open Source License
private void writeBuffer(String id, Buffer buff, Long maxSize, String contentType, String filename, final JsonObject m, Handler<JsonObject> handler) { JsonObject save = new JsonObject(); save.put("action", "save"); save.put("content-type", contentType); save.put("filename", filename); if (id != null && !id.trim().isEmpty()) { save.put("_id", id); }/*from ww w . j a v a 2 s .com*/ final JsonObject metadata = (m != null) ? m : new JsonObject().put("content-type", contentType).put("filename", filename); if (metadata.getLong("size", 0l).equals(0l)) { metadata.put("size", buff.length()); } if (maxSize != null && maxSize < metadata.getLong("size", 0l)) { handler.handle(new JsonObject().put("status", "error").put("message", "file.too.large")); return; } byte[] header = null; try { header = save.toString().getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { JsonObject json = new JsonObject().put("status", "error").put("message", e.getMessage()); handler.handle(json); } if (header != null) { buff.appendBytes(header).appendInt(header.length); eb.send(gridfsAddress, buff, handlerToAsyncHandler(new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> message) { handler.handle(message.body().put("metadata", metadata)); } })); } }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Post("message/:id/attachment") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(MessageUserFilter.class) public void postAttachment(final HttpServerRequest request) { final String messageId = request.params().get("id"); Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() { public void handle(final UserInfos user) { if (user == null) { unauthorized(request);// w w w .j av a 2s.c o m return; } request.pause(); getUserQuota(user.getUserId(), new Handler<JsonObject>() { public void handle(JsonObject j) { request.resume(); if (j == null || "error".equals(j.getString("status"))) { badRequest(request, j == null ? "" : j.getString("message")); return; } long quota = j.getLong("quota", 0l); long storage = j.getLong("storage", 0l); ConversationController.this.storage.writeUploadFile(request, (quota - storage), new Handler<JsonObject>() { public void handle(final JsonObject uploaded) { if (!"ok".equals(uploaded.getString("status"))) { badRequest(request, uploaded.getString("message")); return; } updateUserQuota(user.getUserId(), uploaded .getJsonObject("metadata", new JsonObject()).getLong("size", 0L), new Handler<Void>() { @Override public void handle(Void v) { conversationService.addAttachment(messageId, user, uploaded, defaultResponseHandler(request)); } }); } }); } }); } }; UserUtils.getUserInfos(eb, request, userInfosHandler); }
From source file:org.entcore.conversation.controllers.ConversationController.java
License:Open Source License
@Put("message/:id/forward/:forwardedId") @SecuredAction(value = "", type = ActionType.RESOURCE) @ResourceFilter(MessageUserFilter.class) public void forwardAttachments(final HttpServerRequest request) { final String messageId = request.params().get("id"); final String forwardedId = request.params().get("forwardedId"); //1 - get user infos Handler<UserInfos> userInfosHandler = new Handler<UserInfos>() { public void handle(final UserInfos user) { if (user == null) { unauthorized(request);//from w ww . j a v a 2 s . co m return; } //2 - get user quota getUserQuota(user.getUserId(), new Handler<JsonObject>() { public void handle(JsonObject j) { if (j == null || "error".equals(j.getString("status"))) { badRequest(request, j == null ? "" : j.getString("message")); return; } final long quotaLeft = j.getLong("quota", 0l) - j.getLong("storage", 0l); //3 - get forwarded message attachments conversationService.get(forwardedId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { if (event.isLeft()) { badRequest(request, event.left().getValue()); return; } if (event.isRight() && event.right().getValue() == null) { badRequest(request, event.right().getValue().toString()); return; } final JsonObject neoResult = event.right().getValue(); final JsonArray attachments = neoResult.getJsonArray("attachments"); long attachmentsSize = 0l; for (Object genericObj : attachments) { JsonObject attachment = (JsonObject) genericObj; attachmentsSize += attachment.getLong("size", 0l); } final long finalAttachmentsSize = attachmentsSize; // if total attachment size > quota left, return 403 if (attachmentsSize > quotaLeft) { forbidden(request, "forward.failed.quota"); return; } //4 - forward attachments, add relationships between the message and the already existing attachments conversationService.forwardAttachments(forwardedId, messageId, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { if (event.isLeft()) { badRequest(request, event.left().getValue()); return; } //5 - update user quota updateUserQuota(user.getUserId(), finalAttachmentsSize, new Handler<Void>() { @Override public void handle(Void event) { ok(request); } }); } }); } }); } }); } }; UserUtils.getUserInfos(eb, request, userInfosHandler); }
From source file:org.entcore.infra.controllers.MonitoringController.java
License:Open Source License
@Override public void init(Vertx vertx, JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { super.init(vertx, config, rm, securedActions); dbCheckTimeout = config.getLong("dbCheckTimeout", 5000l); postgresql = config.getBoolean("sql", true); }
From source file:org.entcore.timeline.controllers.TimelineController.java
License:Open Source License
public void init(Vertx vertx, JsonObject config, RouteMatcher rm, Map<String, fr.wseduc.webutils.security.SecuredAction> securedActions) { super.init(vertx, config, rm, securedActions); store = new DefaultTimelineEventStore(); timelineHelper = new TimelineHelper(vertx, eb, config); antiFlood = new TTLSet<>(config.getLong("antiFloodDelay", 3000l), vertx, config.getLong("antiFloodClear", 3600 * 1000l)); refreshTypesCache = config.getBoolean("refreshTypesCache", false); }
From source file:org.entcore.workspace.service.impl.DefaultFolderService.java
License:Open Source License
@Override public void copy(final String id, final String n, final String p, final UserInfos owner, final long emptySize, final Handler<Either<String, JsonArray>> result) { if (owner == null) { result.handle(new Either.Left<String, JsonArray>("workspace.invalid.user")); return;/* w ww . j a v a 2s .co m*/ } if (id == null || id.trim().isEmpty()) { result.handle(new Either.Left<String, JsonArray>("workspace.folder.not.found")); return; } final String path = getOrElse(p, ""); //If the folder has a parent folder, replicate sharing rights String[] splittedPath = path.split("_"); String parentName = splittedPath[splittedPath.length - 1]; String parentFolder = path; getParentRights(parentName, parentFolder, owner, new Handler<Either<String, JsonArray>>() { public void handle(Either<String, JsonArray> event) { final JsonArray parentSharedRights = event.right() == null || event.isLeft() ? null : event.right().getValue(); QueryBuilder query = QueryBuilder.start("_id").is(id).put("owner").is(owner.getUserId()); JsonObject keys = new JsonObject().put("folder", 1).put("name", 1); mongo.findOne(DOCUMENTS_COLLECTION, MongoQueryBuilder.build(query), keys, new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { final String folder = event.body().getJsonObject("result", new JsonObject()) .getString("folder"); final String n1 = event.body().getJsonObject("result", new JsonObject()) .getString("name"); if ("ok".equals(event.body().getString("status")) && folder != null && !folder.trim().isEmpty() && n1 != null && !n1.trim().isEmpty()) { final String folderAttr = "folder"; QueryBuilder q = QueryBuilder.start("owner").is(owner.getUserId()) .put(folderAttr) .regex(Pattern.compile("^" + Pattern.quote(folder) + "($|_)")); mongo.find(DOCUMENTS_COLLECTION, MongoQueryBuilder.build(q), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> src) { final JsonArray origs = src.body().getJsonArray("results", new fr.wseduc.webutils.collections.JsonArray()); if ("ok".equals(src.body().getString("status")) && origs.size() > 0) { long size = 0; for (Object o : origs) { if (!(o instanceof JsonObject)) continue; JsonObject metadata = ((JsonObject) o) .getJsonObject("metadata"); if (metadata != null) { size += metadata.getLong("size", 0l); } } if (size > emptySize) { result.handle(new Either.Left<String, JsonArray>( "files.too.large")); return; } final AtomicInteger number = new AtomicInteger( origs.size()); final JsonArray insert = new fr.wseduc.webutils.collections.JsonArray(); String name = (n != null && !n.trim().isEmpty()) ? n : n1; final String destFolderName = (path != null && !path.trim().isEmpty()) ? path + "_" + name : name; QueryBuilder alreadyExist = QueryBuilder.start("owner") .is(owner.getUserId()).put("folder") .is(destFolderName); mongo.count(DOCUMENTS_COLLECTION, MongoQueryBuilder.build(alreadyExist), new Handler<Message<JsonObject>>() { @Override public void handle(Message<JsonObject> event) { String destFolder; if ("ok".equals( event.body().getString("status")) && event.body() .getInteger("count") == 0) { destFolder = destFolderName; } else { destFolder = destFolderName + "-" + format.format(new Date()); } for (Object o : origs) { if (!(o instanceof JsonObject)) continue; JsonObject orig = (JsonObject) o; final JsonObject dest = orig.copy(); String now = MongoDb .formatDate(new Date()); dest.remove("_id"); dest.put("created", now); dest.put("modified", now); dest.put("folder", dest .getString("folder", "") .replaceFirst( "^" + Pattern .quote(folder), Matcher.quoteReplacement( destFolder))); dest.put("shared", parentSharedRights); insert.add(dest); String filePath = orig .getString("file"); if (filePath != null) { storage.copyFile(filePath, new Handler<JsonObject>() { @Override public void handle( JsonObject event) { if (event != null && "ok".equals( event.getString( "status"))) { dest.put("file", event.getString( "_id")); persist(insert, number.decrementAndGet()); } } }); } else { persist(insert, number.decrementAndGet()); } } } }); } else { result.handle(new Either.Left<String, JsonArray>( "workspace.folder.not.found")); } } private void persist(final JsonArray insert, int remains) { if (remains == 0) { mongo.insert(DOCUMENTS_COLLECTION, insert, new Handler<Message<JsonObject>>() { @Override public void handle( Message<JsonObject> inserted) { if ("ok".equals(inserted.body() .getString("status"))) { result.handle( new Either.Right<String, JsonArray>( insert)); } else { result.handle( new Either.Left<String, JsonArray>( inserted.body() .getString( "message"))); } } }); } } }); } else { result.handle(new Either.Left<String, JsonArray>("workspace.folder.not.found")); } } }); } }); }
From source file:org.entcore.workspace.service.WorkspaceService.java
License:Open Source License
private void emptySize(final UserInfos userInfos, final Handler<Long> emptySizeHandler) { try {//from www . jav a 2s.c om long quota = Long.valueOf(userInfos.getAttribute("quota").toString()); long storage = Long.valueOf(userInfos.getAttribute("storage").toString()); emptySizeHandler.handle(quota - storage); } catch (Exception e) { quotaService.quotaAndUsage(userInfos.getUserId(), new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> r) { if (r.isRight()) { JsonObject j = r.right().getValue(); if (j != null) { long quota = j.getLong("quota", 0l); long storage = j.getLong("storage", 0l); for (String attr : j.fieldNames()) { UserUtils.addSessionAttribute(eb, userInfos.getUserId(), attr, j.getLong(attr), null); } emptySizeHandler.handle(quota - storage); } } } }); } }