This commit is contained in:
Colin McDonald 2016-02-05 20:58:49 -05:00
parent 8eee21b9c3
commit 549b69235f
3 changed files with 50 additions and 17 deletions

View File

@ -6,18 +6,18 @@ import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject; import io.vertx.core.json.JsonObject;
import io.vertx.ext.mongo.MongoClient; import io.vertx.ext.mongo.MongoClient;
import io.vertx.ext.web.Router; import io.vertx.ext.web.Router;
import io.vertx.ext.web.impl.RouterImpl;
import lombok.Getter;
import java.util.List; import java.util.List;
public class APIv3 extends AbstractVerticle { public class APIv3 extends AbstractVerticle {
public static void main(String[] args) { @Getter private static MongoClient mongoClient;
Vertx.vertx().deployVerticle(new APIv3());
}
public void start() { public void start() {
Router coreHttpRouter = Router.router(vertx); Router coreHttpRouter = Router.router(vertx);
MongoClient mongo = MongoClient.createShared(vertx, new JsonObject() mongoClient = MongoClient.createShared(vertx, new JsonObject()
.put("host", "ds055505.mongolab.com") .put("host", "ds055505.mongolab.com")
.put("port", 55505) .put("port", 55505)
.put("username", "test") .put("username", "test")
@ -25,25 +25,14 @@ public class APIv3 extends AbstractVerticle {
.put("db_name", "minehqapi") .put("db_name", "minehqapi")
); );
// We always reply in JSON.
coreHttpRouter.route("/*").handler(ctx -> { coreHttpRouter.route("/*").handler(ctx -> {
ctx.response().putHeader("content-type", "application/json"); ctx.response().putHeader("content-type", "application/json");
ctx.next(); ctx.next();
}); });
coreHttpRouter.get("/servers").handler(ctx -> { 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<JsonObject> servers = result.result();
ctx.response().end(new JsonArray(servers).encode());
} else {
result.cause().printStackTrace();
}
});
}); });
vertx.createHttpServer().requestHandler(coreHttpRouter::accept).listen(80); vertx.createHttpServer().requestHandler(coreHttpRouter::accept).listen(80);

View File

@ -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());
}
}

View File

@ -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<AsyncResult<Set<Server>>> callback) {
APIv3.getMongoClient().find("servers", query, result -> {
if (result.succeeded()) {
List<JsonObject> servers = result.result();
ctx.response().end(new JsonArray(servers).encode());
servers.
} else {
callback.handle(Future.failedFuture());
}
});
}
}