private def request_()

in modules/core/src/main/scala/org/scalasteward/core/util/HttpJsonClient.scala [77:99]


  private def request_(method: Method, uri: Uri, modify: ModReq): F[Unit] =
    requestWithHeaders[Unit](method, uri, modify).void

  // adapted from https://github.com/http4s/http4s/blob/c89ebc2d844c5c93dcc1307e5b9361a2c38bfd00/client/shared/src/main/scala/org/http4s/client/DefaultClient.scala#L91-L105
  private def requestWithHeaders[A](method: Method, uri: Uri, modify: ModReq)(implicit
      d: EntityDecoder[F, A]
  ): F[(A, Headers)] =
    modify(Request[F](method, uri)).flatMap { req =>
      val r = Nel
        .fromList(d.consumes.toList.map(MediaRangeAndQValue(_)))
        .fold(req)(m => req.addHeader(Accept(m)))

      client.run(r).use {
        case Successful(resp) =>
          d.decode(resp, strict = false).value.flatMap {
            case Right(a) => F.pure((a, resp.headers))
            case Left(failure) =>
              handleFailure(resp)(DecodeFailureWithContext(uri, method, _, Some(failure)))
          }
        case resp =>
          handleFailure(resp)(UnexpectedResponse(uri, method, resp.headers, resp.status, _))
      }
    }