private void addEventApiRoutes(final Router router, final Handler<RoutingContext> authHandler) {
router.routeWithRegex("\\/event\\/[^\\/]+\\/.*").handler(CorsHandler.create(getConfig().getCorsAllowedOrigin())
.allowedMethod(HttpMethod.PUT)
.allowedHeader(Constants.HEADER_TIME_TIL_DISCONNECT)
.allowedHeader(HttpHeaders.AUTHORIZATION.toString())
.allowedHeader(HttpHeaders.CONTENT_TYPE.toString()));
if (getConfig().isAuthenticationRequired()) {
router.route("/event").handler(CorsHandler.create(getConfig().getCorsAllowedOrigin())
.allowedMethod(HttpMethod.POST)
.allowedHeader(Constants.HEADER_TIME_TIL_DISCONNECT)
.allowedHeader(HttpHeaders.AUTHORIZATION.toString())
.allowedHeader(HttpHeaders.CONTENT_TYPE.toString()));
router.route(HttpMethod.POST, "/event").handler(authHandler);
router.route(HttpMethod.POST, "/event").handler(this::handlePostEvent);
router.route(HttpMethod.PUT, "/event/*").handler(authHandler);
router.route(HttpMethod.PUT, String.format("/event/:%s/:%s", PARAM_TENANT, PARAM_DEVICE_ID))
.handler(this::assertTenant);
}
router.route(HttpMethod.PUT, String.format("/event/:%s/:%s", PARAM_TENANT, PARAM_DEVICE_ID))
.handler(ctx -> uploadEventMessage(ctx, getTenantParam(ctx), getDeviceIdParam(ctx)));
}