def send()

in http-server/src/main/scala/com/twitter/finatra/http/routing/HttpWarmup.scala [53:84]


  def send(
    request: => Request,
    admin: Boolean = false,
    times: Int = 1
  )(
    responseCallback: Response => Unit = unitFunction
  ): Unit = {

    for (_ <- 1 to times) {

      // Because this method is call-by-name for "request", if "request" is called more than once, a
      // new object could be created each time. Resolve it up-front to prevent this.
      val createdRequest = request

      /* Mutation */
      createdRequest.headerMap.set("Host", "127.0.0.1")
      createdRequest.headerMap.set("User-Agent", userAgent)

      val service: Service[Request, Response] =
        if (createdRequest.uri.startsWith(HttpRouter.FinatraAdminPrefix) || admin) {
          router.services.adminService
        } else {
          router.services.externalService
        }

      logger.infoResult("%s") {
        val response = Await.result(service(createdRequest))
        responseCallback(response)
        s"Warmup $createdRequest completed with ${response.status}"
      }
    }
  }