diff options
Diffstat (limited to 'src/main/scala/com/getbootstrap/rorschach/http/UserAgentWire.scala')
-rw-r--r-- | src/main/scala/com/getbootstrap/rorschach/http/UserAgentWire.scala | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/scala/com/getbootstrap/rorschach/http/UserAgentWire.scala b/src/main/scala/com/getbootstrap/rorschach/http/UserAgentWire.scala new file mode 100644 index 0000000..697c14e --- /dev/null +++ b/src/main/scala/com/getbootstrap/rorschach/http/UserAgentWire.scala @@ -0,0 +1,25 @@ +package com.getbootstrap.rorschach.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: UserAgent) 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.userAgent) + val newHeaders = header +: headers.asScala.filter{ _.getKey != UserAgentWire.userAgentHeader}.toSeq + wire.send(request, home, method, newHeaders.asJava, content) + } +} |