Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/no-carrier.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Rebert <code@rebertia.com>2015-04-14 13:47:11 +0300
committerChris Rebert <code@rebertia.com>2015-04-14 13:47:41 +0300
commit9b5709ba7546cac4b2a9699a39a7bffa742a0562 (patch)
treea0e1c7b13b834c52275d5eefa98c9d2ba36c95ef /src
parent6d8dd815d0a40e894310abe56ee82fc72dcd4be6 (diff)
add & use SuperWire
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/Main.scala4
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala5
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/http/SuperWire.scala21
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/http/UserAgent.scala3
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala4
5 files changed, 31 insertions, 6 deletions
diff --git a/src/main/scala/com/getbootstrap/no_carrier/Main.scala b/src/main/scala/com/getbootstrap/no_carrier/Main.scala
index 4642ca7..2ea1728 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/Main.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/Main.scala
@@ -6,9 +6,10 @@ import scala.util.Try
import com.jcabi.github.{Github, Issue}
import com.jcabi.github.Coordinates.{Simple=>RepoId}
import com.typesafe.scalalogging.StrictLogging
-import com.getbootstrap.no_carrier.util._
import com.getbootstrap.no_carrier.github.{Credentials, FancyIssue}
import com.getbootstrap.no_carrier.github.util._
+import com.getbootstrap.no_carrier.http.UserAgent
+import com.getbootstrap.no_carrier.util._
case class Arguments(
github: Github,
@@ -20,6 +21,7 @@ case class Arguments(
object Main extends App with StrictLogging {
val enabled = false
implicit val clock = Clock.systemUTC
+ implicit val userAgent = new UserAgent("NoCarrier/0.1 (https://github.com/twbs/no-carrier)")
val arguments = (args.toSeq match {
case Seq(username, password, RepositoryId(repoId), NonEmptyStr(label), IntFromStr(PositiveInt(dayCount))) => {
Some(Arguments(
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 7dba1d8..1579aa3 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/github/Credentials.scala
@@ -1,10 +1,9 @@
package com.getbootstrap.no_carrier.github
import com.jcabi.github.{Github, RtGithub}
-import com.jcabi.http.wire.RetryWire
+import com.getbootstrap.no_carrier.http.{UserAgent, SuperWire}
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
+ def github(implicit userAgent: UserAgent): Github = new RtGithub(basicGithub.entry.through(classOf[SuperWire], userAgent))
}
diff --git a/src/main/scala/com/getbootstrap/no_carrier/http/SuperWire.scala b/src/main/scala/com/getbootstrap/no_carrier/http/SuperWire.scala
new file mode 100644
index 0000000..28effd7
--- /dev/null
+++ b/src/main/scala/com/getbootstrap/no_carrier/http/SuperWire.scala
@@ -0,0 +1,21 @@
+package com.getbootstrap.no_carrier.http
+
+import java.util.{Collection=>JavaCollection}
+import java.util.Map.{Entry=>MapEntry}
+import java.io.InputStream
+import com.jcabi.http._
+import com.jcabi.http.wire.RetryWire
+
+case class SuperWire(private val wire: Wire, userAgent: UserAgent) extends Wire {
+ // FIXME: use RetryCarefulWire once it's available
+ private val wrappedWire = UserAgentWire(wire = new RetryWire(wire), userAgent = userAgent)
+
+ @Override
+ def send(
+ request: Request,
+ home: String,
+ method: String,
+ headers: JavaCollection[MapEntry[String, String]],
+ content: InputStream
+ ): Response = wrappedWire.send(request, home, method, headers, content)
+}
diff --git a/src/main/scala/com/getbootstrap/no_carrier/http/UserAgent.scala b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgent.scala
new file mode 100644
index 0000000..2a5c72f
--- /dev/null
+++ b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgent.scala
@@ -0,0 +1,3 @@
+package com.getbootstrap.no_carrier.http
+
+case class UserAgent(userAgent: String)
diff --git a/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala
index 8ccca2b..31ad2c9 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/http/UserAgentWire.scala
@@ -9,7 +9,7 @@ import com.jcabi.http._
object UserAgentWire {
private val userAgentHeader = "User-Agent"
}
-case class UserAgentWire(private val wire: Wire, userAgent: String) extends Wire {
+case class UserAgentWire(private val wire: Wire, userAgent: UserAgent) extends Wire {
@Override
def send(
request: Request,
@@ -18,7 +18,7 @@ case class UserAgentWire(private val wire: Wire, userAgent: String) extends Wire
headers: JavaCollection[MapEntry[String, String]],
content: InputStream
): Response = {
- val header = new ImmutableHeader(UserAgentWire.userAgentHeader, userAgent)
+ 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)
}