From b3867e2c016d3353b7a00ad66150db674861f541 Mon Sep 17 00:00:00 2001 From: Lorenzo Gabriele Date: Mon, 25 Mar 2024 16:29:50 +0100 Subject: [PATCH] Revert "clean: Replace scalaj with sttp (#496)" This reverts commit 9cc735f195b8f93c2ce2da4037a1c59f6c87ce4a. --- .../com/codacy/api/client/CodacyClient.scala | 34 +++++++++---------- build.sbt | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/api-scala/src/main/scala/com/codacy/api/client/CodacyClient.scala b/api-scala/src/main/scala/com/codacy/api/client/CodacyClient.scala index bb89336a..f971657b 100644 --- a/api-scala/src/main/scala/com/codacy/api/client/CodacyClient.scala +++ b/api-scala/src/main/scala/com/codacy/api/client/CodacyClient.scala @@ -1,14 +1,12 @@ package com.codacy.api.client -import com.codacy.api.util.JsonOps import play.api.libs.json._ -import sttp.client3.{HttpURLConnectionBackend, SttpBackendOptions} -import sttp.client3.quick._ +import com.codacy.api.util.JsonOps +import scalaj.http.Http import java.net.URL -import scala.concurrent.duration._ -import scala.util.control.NonFatal import scala.util.{Failure, Success, Try} +import scala.util.control.NonFatal class CodacyClient( apiUrl: Option[String] = None, @@ -40,24 +38,24 @@ class CodacyClient( sleepTime: Option[Int], numRetries: Option[Int] )(implicit reads: Reads[T]): RequestResponse[T] = { + val url = s"$remoteUrl/${request.endpoint}" try { - var req = quickRequest - .post(uri"$remoteUrl/${request.endpoint}".withParams(request.queryParameters)) - .headers(tokens ++ Map("Content-Type" -> "application/json")) - .body(value) - - var options = SttpBackendOptions.Default + val headers = tokens ++ Map("Content-Type" -> "application/json") - timeoutOpt.foreach { timeout => - options = options.connectionTimeout(timeout.connTimeoutMs.millis) - req = req.readTimeout(timeout.readTimeoutMs.millis) + val httpRequest = timeoutOpt match { + case Some(timeout) => + Http(url).timeout(connTimeoutMs = timeout.connTimeoutMs, readTimeoutMs = timeout.readTimeoutMs) + case None => Http(url) } - val client = simpleHttpClient.withBackend(HttpURLConnectionBackend(options = options)) - - val response = client.send(req) + val body = httpRequest + .params(request.queryParameters) + .headers(headers) + .postData(value) + .asString + .body - parseJsonAs[T](response.body) match { + parseJsonAs[T](body) match { case failure: FailedResponse => retryPost(request, value, timeoutOpt, sleepTime, numRetries.map(x => x - 1), failure.message) case success => success diff --git a/build.sbt b/build.sbt index dd3756df..f2286194 100644 --- a/build.sbt +++ b/build.sbt @@ -77,7 +77,7 @@ lazy val apiScala = project .settings( libraryDependencies ++= Seq( "com.typesafe.play" %% "play-json" % "2.8.2", - "com.softwaremill.sttp.client3" %% "core" % "3.9.5", + "org.scalaj" %% "scalaj-http" % "2.4.2", "org.eclipse.jgit" % "org.eclipse.jgit" % "4.11.9.201909030838-r", "org.scalatest" %% "scalatest" % "3.0.8" % Test )