Initial commit!

This commit is contained in:
Colin McDonald 2016-02-05 18:09:59 -05:00
commit 8eee21b9c3
3 changed files with 147 additions and 0 deletions

19
.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
# Eclipse
.classpath
.project
.settings/
# Intellij
.idea/
*.iml
*.iws
# Mac
.DS_Store
# Maven
log/
target/
dependency-reduced-pom.xml
*.jar

76
pom.xml Normal file
View File

@ -0,0 +1,76 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.frozenorb</groupId>
<artifactId>APIv3</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
</artifactSet>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-mongo-client</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-redis-client</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,52 @@
package net.frozenorb.apiv3;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;
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 java.util.List;
public class APIv3 extends AbstractVerticle {
public static void main(String[] args) {
Vertx.vertx().deployVerticle(new APIv3());
}
public void start() {
Router coreHttpRouter = Router.router(vertx);
MongoClient mongo = MongoClient.createShared(vertx, new JsonObject()
.put("host", "ds055505.mongolab.com")
.put("port", 55505)
.put("username", "test")
.put("password", "test")
.put("db_name", "minehqapi")
);
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<JsonObject> servers = result.result();
ctx.response().end(new JsonArray(servers).encode());
} else {
result.cause().printStackTrace();
}
});
});
vertx.createHttpServer().requestHandler(coreHttpRouter::accept).listen(80);
}
}