blob: 964a5a294fd22fccf5ecddd96089bdf81575520e (
plain) (
tree)
|
|
package xyz.driver.core.rest
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.headers.`User-Agent`
import akka.http.scaladsl.model.{HttpRequest, HttpResponse}
import akka.http.scaladsl.settings.{ClientConnectionSettings, ConnectionPoolSettings}
import akka.stream.ActorMaterializer
import xyz.driver.core.Name
import scala.concurrent.Future
class SingleRequestHttpClient(applicationName: Name[App], applicationVersion: String, actorSystem: ActorSystem)
extends HttpClient {
protected implicit val materializer: ActorMaterializer = ActorMaterializer()(actorSystem)
private val client = Http()(actorSystem)
private val clientConnectionSettings: ClientConnectionSettings =
ClientConnectionSettings(actorSystem).withUserAgentHeader(
Option(`User-Agent`(applicationName.value + "/" + applicationVersion)))
private val connectionPoolSettings: ConnectionPoolSettings = ConnectionPoolSettings(actorSystem)
.withConnectionSettings(clientConnectionSettings)
def makeRequest(request: HttpRequest): Future[HttpResponse] = {
client.singleRequest(request, settings = connectionPoolSettings)
}
}
|