+ val masterConf = MasterConf.MasterConf
+ val actorProvider = masterConf.actorProvider
+ val dispatcher = actorProvider.actorForRole(DispatcherRole)
+ val headersMap = headers map { h => (h.name, h.value) } toMap
+ val futureResponse = dispatcher ask RESTRequest("POST", "/events", headersMap, body)
+
+ futureResponse onComplete { fr ⇒
+ fr.value match {
+ case None ⇒
+ // TODO: Will this ever happen??
+ case Some(Left(throwable)) ⇒
+ // TODO: Log something here and give back some more detailed info
+ responder.complete(stringResponse(500, "Internal Server Error", "text/plain"))
+ case Some(Right(actualResponse)) ⇒
+ actualResponse match {
+ case RESTResponse(status, headers, body) ⇒
+ responder complete {
+ HttpResponse(
+ status,
+ headers map { case (k, v) => HttpHeader(k, v)} toList,
+ body
+ )
+ }
+ case unknownResponse ⇒
+ // TODO: Log something here and give back some more detailed info
+ responder.complete(stringResponse(500, "Internal Server Error", "text/plain"))
+ }
+ }
+ }