diff options
author | vlad <vlad@drivergrp.com> | 2016-07-16 04:09:40 -0400 |
---|---|---|
committer | vlad <vlad@drivergrp.com> | 2016-07-16 04:09:40 -0400 |
commit | 482459a63433c281b7a576236111e6a86e4521c9 (patch) | |
tree | 7b445b56b5846bda368e1864ac43d8f860341077 /src/main/scala/com/drivergrp/core/rest.scala | |
parent | 980deaf70e4e0ba906d0af534aebc839015f0581 (diff) | |
download | driver-core-482459a63433c281b7a576236111e6a86e4521c9.tar.gz driver-core-482459a63433c281b7a576236111e6a86e4521c9.tar.bz2 driver-core-482459a63433c281b7a576236111e6a86e4521c9.zip |
Default implementations for easier testing + Database implicits reorganized
Diffstat (limited to 'src/main/scala/com/drivergrp/core/rest.scala')
-rw-r--r-- | src/main/scala/com/drivergrp/core/rest.scala | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/main/scala/com/drivergrp/core/rest.scala b/src/main/scala/com/drivergrp/core/rest.scala index b772a2e..51823da 100644 --- a/src/main/scala/com/drivergrp/core/rest.scala +++ b/src/main/scala/com/drivergrp/core/rest.scala @@ -23,20 +23,29 @@ import scalaz.{Failure => _, Success => _, _} object rest { - class RestService(actorSystem: ActorSystem, log: Logger, stats: Stats, - time: TimeProvider, executionContext: ExecutionContext) { + trait RestService { + def sendRequest(request: HttpRequest): Future[HttpResponse] + } - protected implicit val timeout = Timeout(5 seconds) + class AkkaHttpRestService(actorSystem: ActorSystem) extends RestService { + protected implicit val materializer = ActorMaterializer()(actorSystem) + + def sendRequest(request: HttpRequest): Future[HttpResponse] = + Http()(actorSystem).singleRequest(request)(materializer) + } - implicit val materializer = ActorMaterializer()(actorSystem) + class ProxyRestService(actorSystem: ActorSystem, log: Logger, stats: Stats, + time: TimeProvider, executionContext: ExecutionContext) + extends AkkaHttpRestService(actorSystem) { + protected implicit val timeout = Timeout(5 seconds) - def sendRequest(request: HttpRequest): Future[HttpResponse] = { + override def sendRequest(request: HttpRequest): Future[HttpResponse] = { log.audit(s"Sending to ${request.uri} request $request") val requestTime = time.currentTime() - val response = Http()(actorSystem).singleRequest(request)(materializer) + val response = super.sendRequest(request) response.onComplete { case Success(_) => @@ -55,7 +64,6 @@ object rest { } } - object basicFormats { implicit def idFormat[T] = new RootJsonFormat[Id[T]] { |