From ee6ac4178ccb0c7655479179b2ed181d13d5c597 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Mon, 13 Apr 2015 20:03:28 -0700 Subject: add UserAgentWire --- .../no_carrier/github/Credentials.scala | 1 + .../no_carrier/http/UserAgentWire.scala | 25 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala diff --git a/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala b/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala index 2e22aaf..7dba1d8 100644 --- a/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala +++ b/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala @@ -6,4 +6,5 @@ import com.jcabi.http.wire.RetryWire case class Credentials(username: String, password: String) { private def basicGithub: Github = new RtGithub(username, password) def github: Github = new RtGithub(basicGithub.entry.through(classOf[RetryWire])) // FIXME: use RetryCarefulWire once it's available + // FIXME: also make use of UserAgentWire } diff --git a/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala new file mode 100644 index 0000000..e757659 --- /dev/null +++ b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala @@ -0,0 +1,25 @@ +package com.getbootstrap.no_carrier.http + +import java.util.{Collection=>JavaCollection} +import java.util.Map.{Entry=>MapEntry} +import java.io.InputStream +import scala.collection.JavaConverters._ +import com.jcabi.http._ + +object UserAgentWire { + private val userAgentHeader = "User-Agent" +} +case class UserAgentWire(private val wire: Wire, userAgent: String) extends Wire { + @Override + def send( + request: Request, + home: String, + method: String, + headers: JavaCollection[MapEntry[String, String]], + content: InputStream + ): Response = { + val header = new ImmutableHeader(UserAgentWire.userAgentHeader, userAgent) + val newHeaders = header +: headers.asScala.filter{ _ != UserAgentWire.userAgentHeader}.toSeq + wire.send(request, home, method, newHeaders.asJava, content) + } +} -- cgit v1.2.3