import io.vertx.core.Vertx;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.json.JsonObject;
import io.vertx.core.net.SocketAddress;
import io.vertx.ext.web.client.WebClient;
public class TrashMigrator {
final private static int PORT_TDG = 8181;
final private static int PORT_MY = 8080;
final private static String HOST = "localhost";
final private static String TOKEN = "9f226286-e0d8-4125-ad43-b123b4e464da";
final private static String TYPE = "application/json;charset=utf-8";
public void get(WebClient client) {
client
.post(PORT_TDG, HOST, "/graphql")
.putHeader("Content-Type", "application/json")
.sendJsonObject(
new JsonObject()
.put("query", "{Book { uuid, book_name, author }}")
)
.onSuccess(res -> {
if (res.statusCode() == 200 &&
res.getHeader("content-type").equals(TYPE)) {
JsonObject body = res.bodyAsJsonObject();
body.stream();
post(client, body);
}
});
}
public void post(WebClient client, JsonObject body) {
client
.post(PORT_TDG, HOST, "/http")
.putHeader("Content-Type", TYPE)
.putHeader("auth-token", TOKEN)
.sendJsonObject(body)
.onSuccess(res -> {
//todo
});
}
public void run(HttpServer server, WebClient client) {
server.requestHandler(request -> {
HttpServerResponse response = request.response();
get(client);
});
server.listen(SocketAddress.domainSocketAddress(String.format("%s/%s//api/migrate/graphql", HOST, PORT_MY)));
}
public static void main(String[] args) throws Exception {
Vertx vertx = Vertx.vertx();
WebClient client = WebClient.create(vertx);
TrashMigrator migrator = new TrashMigrator();
HttpServer server = vertx.createHttpServer();
migrator.run(server, client);
}
}