override def get()

in app/com/gu/itunes/CustomCapiClient.scala [27:44]


  override def get(url: String, headers: Map[String, String])(implicit context: ExecutionContext): Future[HttpResponse] = withRetry(backoffStrategy) { retryAttempt =>
    val start = System.nanoTime()
    val updatedHeaders = headers + ("Request-Attempt" -> s"$retryAttempt")
    val request = updatedHeaders.foldLeft(new Request.Builder().url(url)) { case (r, (header, value)) => r.header(header, value) }.build()
    val response = Promise[HttpResponse]()
    http.newCall(request).enqueue(new Callback {
      override def onFailure(call: Call, e: IOException) = response failure e

      override def onResponse(call: Call, resp: Response) =
        response success HttpResponse(resp.body.bytes, resp.code, resp.message)
    })

    response.future map { result =>
      val end = System.nanoTime()
      logger.info(s"Received CAPI response ${result.statusCode} in ${Duration.fromNanos(end - start).toMillis} ms")
      result
    }
  }