-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathItalian.java
64 lines (48 loc) · 2 KB
/
Italian.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import org.vertx.java.core.Handler;
import org.vertx.java.core.buffer.Buffer;
import org.vertx.java.core.eventbus.Message;
import org.vertx.java.core.http.HttpClient;
import org.vertx.java.core.http.HttpClientResponse;
import org.vertx.java.core.json.JsonObject;
import org.vertx.java.core.logging.Logger;
import org.vertx.java.deploy.Verticle;
public class Italian extends Verticle {
Logger logger;
HttpClient client;
@Override
public void start() throws Exception {
logger = container.getLogger();
client = vertx.createHttpClient()
.setHost("localhost")
.setPort(8090);
vertx.eventBus().registerHandler("worker", new Handler<Message<JsonObject>>() {
@Override
public void handle(final Message<JsonObject> message) {
String word = message.body.getString("word");
logger.info("Received a request to translate '%s' into Italian");
String url = "http://localhost:8090/translate?word=" + word + "&language=italian";
client.getNow(url, new Handler<HttpClientResponse>() {
@Override
public void handle(HttpClientResponse resp) {
if(resp.statusCode == 200) {
resp.bodyHandler(new Handler<Buffer>() {
@Override
public void handle(Buffer buffer) {
message.reply(createReply(buffer.toString()));
}
});
} else {
message.reply(createReply("Woops!"));
}
}
});
}
});
}
private JsonObject createReply(String translation) {
JsonObject reply = new JsonObject();
reply.putString("translation", translation);
reply.putString("language", "Italian");
return reply;
}
}