in services/tracking-service/reactive-vertx/src/main/java/com/amazon/verticles/HttpVerticle.java [101:138]
private void handleTrackingEvent(final RoutingContext routingContext) {
String userAgent = routingContext.request().getHeader("User-Agent");
String eventID = routingContext.request().getParam("eventID");
UUID uuid = UUID.randomUUID();
TrackingMessage trackingMessage = new TrackingMessage();
trackingMessage.setMessageId(uuid.toString());
trackingMessage.setProgramId(eventID);
JsonObject message = JsonObject.mapFrom(trackingMessage);
if (null == eventID) {
routingContext.fail(400);
return;
}
eb
.<JsonObject>request(Constants.CACHE_EVENTBUS_ADDRESS, message)
.onSuccess(res -> {
JsonObject result = res.body();
if (result.isEmpty()) {
sendResponse(routingContext, 404, Json.encode("ProgramId not found"));
return;
}
TrackingMessage tmpMsg = Json.decodeValue(result.encode(), TrackingMessage.class);
tmpMsg.setUserAgent(userAgent);
String enrichedData = Json.encode(tmpMsg);
eb.send(Constants.KINESIS_EVENTBUS_ADDRESS, enrichedData);
sendResponse(routingContext, 200, enrichedData);
})
.onFailure(err -> {
LOGGER.severe(err.getMessage());
routingContext.fail(err);
});
}