aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/rest.scala
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-07-16 04:09:40 -0400
committervlad <vlad@drivergrp.com>2016-07-16 04:09:40 -0400
commit482459a63433c281b7a576236111e6a86e4521c9 (patch)
tree7b445b56b5846bda368e1864ac43d8f860341077 /src/main/scala/com/drivergrp/core/rest.scala
parent980deaf70e4e0ba906d0af534aebc839015f0581 (diff)
downloaddriver-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.scala22
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]] {