diff --git a/src/main/java/net/frozenorb/apiv3/APIv3.java b/src/main/java/net/frozenorb/apiv3/APIv3.java index de406c2..d2d6596 100644 --- a/src/main/java/net/frozenorb/apiv3/APIv3.java +++ b/src/main/java/net/frozenorb/apiv3/APIv3.java @@ -6,18 +6,18 @@ import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import io.vertx.ext.mongo.MongoClient; import io.vertx.ext.web.Router; +import io.vertx.ext.web.impl.RouterImpl; +import lombok.Getter; import java.util.List; public class APIv3 extends AbstractVerticle { - public static void main(String[] args) { - Vertx.vertx().deployVerticle(new APIv3()); - } + @Getter private static MongoClient mongoClient; public void start() { Router coreHttpRouter = Router.router(vertx); - MongoClient mongo = MongoClient.createShared(vertx, new JsonObject() + mongoClient = MongoClient.createShared(vertx, new JsonObject() .put("host", "ds055505.mongolab.com") .put("port", 55505) .put("username", "test") @@ -25,25 +25,14 @@ public class APIv3 extends AbstractVerticle { .put("db_name", "minehqapi") ); + // We always reply in JSON. coreHttpRouter.route("/*").handler(ctx -> { ctx.response().putHeader("content-type", "application/json"); ctx.next(); }); coreHttpRouter.get("/servers").handler(ctx -> { - long start = System.currentTimeMillis(); - mongo.find("servers", new JsonObject(), result -> { - if (result.succeeded()) { - if (true) { - ctx.response().end("{'time': " + (System.currentTimeMillis() - start) + "}"); - return; - } - List servers = result.result(); - ctx.response().end(new JsonArray(servers).encode()); - } else { - result.cause().printStackTrace(); - } - }); + }); vertx.createHttpServer().requestHandler(coreHttpRouter::accept).listen(80); diff --git a/src/main/java/net/frozenorb/apiv3/Main.java b/src/main/java/net/frozenorb/apiv3/Main.java new file mode 100644 index 0000000..145a553 --- /dev/null +++ b/src/main/java/net/frozenorb/apiv3/Main.java @@ -0,0 +1,11 @@ +package net.frozenorb.apiv3; + +import io.vertx.core.Vertx; + +public class Main { + + public static void main(String[] args) { + Vertx.vertx().deployVerticle(new APIv3()); + } + +} \ No newline at end of file diff --git a/src/main/java/net/frozenorb/apiv3/types/Server.java b/src/main/java/net/frozenorb/apiv3/types/Server.java new file mode 100644 index 0000000..c0b1643 --- /dev/null +++ b/src/main/java/net/frozenorb/apiv3/types/Server.java @@ -0,0 +1,33 @@ +package net.frozenorb.apiv3.types; + +import com.fasterxml.jackson.databind.util.JSONPObject; +import io.vertx.core.AsyncResult; +import io.vertx.core.Future; +import io.vertx.core.Handler; +import io.vertx.core.json.JsonArray; +import io.vertx.core.json.JsonObject; +import lombok.Getter; +import net.frozenorb.apiv3.APIv3; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class Server { + + @Getter private String id; + + private static void findServers(JSONPObject query, Handler>> callback) { + APIv3.getMongoClient().find("servers", query, result -> { + if (result.succeeded()) { + List servers = result.result(); + ctx.response().end(new JsonArray(servers).encode()); + + servers. + } else { + callback.handle(Future.failedFuture()); + } + }); + } + +} \ No newline at end of file