Skip to content

Commit e749ec7

Browse files
authored
Merge pull request #43 from codacy/migrate-endpoints-to-api2.0
Migrate endpoints to api2.0 - FT5858
2 parents 55270cd + a55c255 commit e749ec7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+785
-206
lines changed

build.sbt

+2-11
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,15 @@ name := """bitbucket-scala-client"""
77

88
version := "1.9.0-SNAPSHOT"
99

10-
scalaVersion := "2.12.6"
11-
12-
crossScalaVersions := Seq("2.11.12", "2.12.6")
13-
14-
unmanagedSourceDirectories in Compile += {
15-
(scalaVersion.value, (sourceDirectory in Compile).value) match {
16-
case (v, dir) if v startsWith "2.11" => dir / "scala-2.11"
17-
case (v, dir) if v startsWith "2.12" => dir / "scala-2.12"
18-
}
19-
}
10+
scalaVersion := "2.11.12"
2011

2112
scalacOptions := Seq("-deprecation", "-feature", "-unchecked", "-Ywarn-adapted-args", "-Xlint")
2213

2314
resolvers += "Typesafe maven repository" at "http://repo.typesafe.com/typesafe/maven-releases/"
2415

2516
libraryDependencies ++= Seq(
2617
Dependencies.playWS,
27-
Dependencies.playJson(scalaVersion.value),
18+
Dependencies.playJson,
2819
Dependencies.scalaTest
2920
)
3021

project/Dependencies.scala

+3-15
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,10 @@ import sbt._
22

33
object Dependencies {
44

5-
val playWsStandaloneVersion = "1.1.9"
6-
val playWS = "com.typesafe.play" %% "play-ahc-ws-standalone" % playWsStandaloneVersion
7-
val playWSjson = "com.typesafe.play" %% "play-ws-standalone-json" % playWsStandaloneVersion
8-
val playJson_211 = "com.typesafe.play" %% "play-json" % "2.4.3"
5+
val playWS = "com.typesafe.play" %% "play-ws" % "2.4.3"
96

10-
val scalaTest = "org.scalatest" %% "scalatest" % "3.0.5" % "test"
11-
12-
def playJson(scalaVersion: String): ModuleID = withScalaVersion(scalaVersion)(
13-
playWSjson,
14-
playJson_211
15-
)
7+
val playJson = "com.typesafe.play" %% "play-json" % "2.4.3"
168

17-
private def withScalaVersion(scalaVersion: String)(
18-
scala212: ModuleID,
19-
scalaFallback: ModuleID): ModuleID = {
20-
if (scalaVersion.startsWith("2.12")) scala212 else scalaFallback
21-
}
9+
val scalaTest = "org.scalatest" %% "scalatest" % "3.0.5" % "test"
2210

2311
}

src/main/scala-2.11/play/api/libs/json.scala

-18
This file was deleted.

src/main/scala-2.11/play/api/libs/json/TemporalParser.scala

-29
This file was deleted.

src/main/scala-2.11/play/api/libs/ws/JsonBodyReadables.scala

-24
This file was deleted.

src/main/scala-2.11/play/api/libs/ws/JsonBodyWritables.scala

-20
This file was deleted.

src/main/scala/com/codacy/client/bitbucket/client/Authentication.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.codacy.client.bitbucket.client
22

33
import play.api.libs.oauth.{ConsumerKey, OAuthCalculator, RequestToken}
4-
import play.api.libs.ws.{WSAuthScheme, StandaloneWSRequest => WSRequest}
4+
import play.api.libs.ws.{WSAuthScheme, WSRequest}
55

66
/**
77
* Handles request authentication.
@@ -47,7 +47,7 @@ object Authentication {
4747
}
4848

4949
class OAuth2Authenticator(credentials: OAuth2Credentials) extends Authenticator {
50-
override def authenticate(req: WSRequest): WSRequest = req.withQueryStringParameters("access_token" -> credentials.accessToken)
50+
override def authenticate(req: WSRequest): WSRequest = req.withQueryString("access_token" -> credentials.accessToken)
5151
}
5252

5353
class BasicAuthAuthenticator(credentials: BasicAuthCredentials) extends Authenticator {

src/main/scala/com/codacy/client/bitbucket/client/BitbucketClient.scala

+13-14
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,21 @@ package com.codacy.client.bitbucket.client
22

33
import java.net.URI
44

5-
import akka.stream.Materializer
65
import com.codacy.client.bitbucket.client.Authentication._
76
import com.codacy.client.bitbucket.util.HTTPStatusCodes
87
import com.codacy.client.bitbucket.util.Implicits.URIQueryParam
8+
import com.ning.http.client.AsyncHttpClientConfig
9+
import play.api.http.Writeable
910
import play.api.libs.json._
10-
import play.api.libs.ws.BodyWritable
11-
import play.api.libs.ws.DefaultBodyWritables._
12-
import play.api.libs.ws.JsonBodyWritables._
13-
import play.api.libs.ws.ahc.StandaloneAhcWSClient
14-
import play.shaded.ahc.org.asynchttpclient.DefaultAsyncHttpClient
11+
import play.api.libs.ws.ning.{NingAsyncHttpClientConfigBuilder, NingWSClient}
1512

1613
import scala.compat.Platform.EOL
1714
import scala.concurrent.Await
1815
import scala.concurrent.duration.{Duration, SECONDS}
1916
import scala.util.{Failure, Properties, Success, Try}
2017

2118

22-
class BitbucketClient(credentials: Credentials)(implicit materializer: Materializer) {
19+
class BitbucketClient(credentials: Credentials) {
2320

2421
private lazy val requestTimeout = Duration(10, SECONDS)
2522

@@ -54,7 +51,7 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
5451
(FIRST_PAGE + 1 to lastPage).par.map { page =>
5552
val nextUrl = new URI(request.url).addQuery(s"page=$page").toString
5653
get(nextUrl) match {
57-
case Right(json) => extractValues(json)
54+
case Right(nextJson) => extractValues(nextJson)
5855
case Left(error) => FailedResponse(error.detail)
5956
}
6057
}.to[Seq]
@@ -75,7 +72,7 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
7572
/*
7673
* Does an API request
7774
*/
78-
private def performRequest[D, T](method: String, request: Request[T], values: D)(implicit reader: Reads[T], writer: BodyWritable[D]): RequestResponse[T] = withClientRequest { client =>
75+
private def performRequest[D, T](method: String, request: Request[T], values: D)(implicit reader: Reads[T], writer: Writeable[D]): RequestResponse[T] = withClientRequest { client =>
7976
val jpromise = client.url(request.url)
8077
.authenticate(authenticator)
8178
.withFollowRedirects(follow = true)
@@ -111,7 +108,7 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
111108
value
112109
}
113110

114-
def postForm[T](request: Request[T], values: Map[String, Seq[String]])(implicit reader: Reads[T]): RequestResponse[T] = {
111+
def postForm[D, T](request: Request[T], values: D)(implicit reader: Reads[T], writer: Writeable[D]): RequestResponse[T] = {
115112
performRequest("POST", request, values)
116113
}
117114

@@ -178,15 +175,15 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
178175
}
179176
}
180177

181-
private def withClientEither[T](block: StandaloneAhcWSClient => Either[ResponseError, T]): Either[ResponseError, T] = {
178+
private def withClientEither[T](block: NingWSClient => Either[ResponseError, T]): Either[ResponseError, T] = {
182179
withClient(block) match {
183180
case Success(res) => res
184181
case Failure(error) =>
185182
Left(ResponseError("Request failed", getFullStackTrace(error), error.getMessage))
186183
}
187184
}
188185

189-
private def withClientRequest[T](block: StandaloneAhcWSClient => RequestResponse[T]): RequestResponse[T] = {
186+
private def withClientRequest[T](block: NingWSClient => RequestResponse[T]): RequestResponse[T] = {
190187
withClient(block) match {
191188
case Success(res) => res
192189
case Failure(error) =>
@@ -200,8 +197,10 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
200197
}
201198
}
202199

203-
private def withClient[T](block: StandaloneAhcWSClient => T): Try[T] = {
204-
val client = new StandaloneAhcWSClient(new DefaultAsyncHttpClient)
200+
private def withClient[T](block: NingWSClient => T): Try[T] = {
201+
val config = new NingAsyncHttpClientConfigBuilder().build()
202+
val clientConfig = new AsyncHttpClientConfig.Builder(config).build()
203+
val client = new NingWSClient(clientConfig)
205204
val result = Try(block(client))
206205
client.close()
207206
result

src/main/scala/com/codacy/client/bitbucket/client/RequestResponse.scala

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
package com.codacy.client.bitbucket.client
22

3-
sealed trait RequestResponse[+A]
3+
sealed trait RequestResponse[+A] {
4+
5+
def map[B](f: A => B): RequestResponse[B] = {
6+
flatMap(a => RequestResponse.success(f(a)))
7+
}
8+
9+
def flatMap[B](f: A => RequestResponse[B]): RequestResponse[B] = {
10+
this match {
11+
case SuccessfulResponse(a) => f(a)
12+
case e: FailedResponse => e
13+
}
14+
}
15+
16+
}
417

518
case class SuccessfulResponse[A](value: A) extends RequestResponse[A]
619

src/main/scala/com/codacy/client/bitbucket/util/Implicits.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package com.codacy.client.bitbucket.util
22

33
import java.net.URI
44

5-
import play.api.libs.json._
6-
import play.api.libs.json.{Json, JsonValidationError, Reads, Writes}
5+
import play.api.data.validation.ValidationError
6+
import play.api.libs.json.{Json, Reads, Writes}
77

88
import scala.language.implicitConversions
99

@@ -13,7 +13,7 @@ object Implicits {
1313

1414
implicit def enumReads[E <: Enumeration](e: E): Reads[e.Value] = {
1515
Reads.StringReads.map { value => e.values.find(_.toString == value) }
16-
.collect(JsonValidationError("Invalid enumeration value")) { case Some(v) => v }
16+
.collect(ValidationError("Invalid enumeration value")) { case Some(v) => v }
1717
}
1818

1919
implicit class URIQueryParam(uri: URI) {

src/main/scala/com/codacy/client/bitbucket/BuildStatus.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/BuildStatus.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import com.codacy.client.bitbucket.util.JsonEnumeration
44
import play.api.libs.json.Json

src/main/scala/com/codacy/client/bitbucket/Commit.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/Commit.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/CommitComment.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/CommitComment.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/Email.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/Email.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.functional.syntax._
44
import play.api.libs.json._

src/main/scala/com/codacy/client/bitbucket/Issue.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/Issue.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/PullRequest.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/PullRequest.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/PullRequestComment.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/PullRequestComment.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/PullRequestReviewers.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/PullRequestReviewers.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.json._
44

src/main/scala/com/codacy/client/bitbucket/Repository.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/Repository.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/SimpleCommit.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/SimpleCommit.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/SimplePullRequestComment.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/SimplePullRequestComment.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.functional.syntax._
44
import play.api.libs.json._

src/main/scala/com/codacy/client/bitbucket/SimpleRepository.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/SimpleRepository.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import java.time.LocalDateTime
44

src/main/scala/com/codacy/client/bitbucket/SshKey.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/SshKey.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.functional.syntax._
44
import play.api.libs.json._

src/main/scala/com/codacy/client/bitbucket/User.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/User.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.functional.syntax._
44
import play.api.libs.json._

src/main/scala/com/codacy/client/bitbucket/Webhook.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/Webhook.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codacy.client.bitbucket
1+
package com.codacy.client.bitbucket.v1
22

33
import play.api.libs.json.{Reads, Json, JsObject}
44

src/main/scala/com/codacy/client/bitbucket/service/CommitServices.scala renamed to src/main/scala/com/codacy/client/bitbucket/v1/service/CommitServices.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.codacy.client.bitbucket.service
1+
package com.codacy.client.bitbucket.v1.service
22

3-
import com.codacy.client.bitbucket.CommitComment
3+
import com.codacy.client.bitbucket.v1.CommitComment
44
import com.codacy.client.bitbucket.client.{BitbucketClient, Request, RequestResponse}
55
import com.codacy.client.bitbucket.util.CommitHelper
66
import play.api.libs.json.{JsNumber, JsObject, JsString}

0 commit comments

Comments
 (0)