Skip to content

Commit 8a8c1c6

Browse files
committed
update to play 2.4
1 parent 5bb1c8c commit 8a8c1c6

File tree

6 files changed

+29
-9
lines changed

6 files changed

+29
-9
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Dependencies._
22

33
name := """bitbucket-scala-client"""
44

5-
version := "1.1"
5+
version := "1.2"
66

77
scalaVersion := "2.10.5"
88

project/Dependencies.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ object Dependencies {
66
lazy val jodaTime = "joda-time" % "joda-time" % "2.7"
77

88
// Play framework
9-
lazy val playWS = "com.typesafe.play" %% "play-ws" % "2.3.8"
9+
lazy val playWS = "com.typesafe.play" %% "play-ws" % "2.4.0"
1010

1111
}

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#Activator-generated Properties
22
#Sat Jul 12 15:51:18 WEST 2014
33
template.uuid=a855816c-0367-44ba-9adb-6a903f6ad599
4-
sbt.version=0.13.5
4+
sbt.version=0.13.8

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ object Commit {
1010
val dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZ"
1111
implicit val jodaDateTimeReads = Reads.jodaDateReads(dateFormat)
1212

13+
implicit def optionSeqStringReader: Reads[Option[Seq[String]]] = Reads { (json: JsValue) =>
14+
json match {
15+
case JsArray(value) => JsSuccess(Some(value.flatMap(_.asOpt[String])))
16+
case _ => JsSuccess(None)
17+
}
18+
}
19+
1320
implicit val reader: Reads[Commit] = (
1421
(__ \ "hash").read[String] and
1522
(__ \ "author" \ "user" \ "username").read[String] and

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ object PullRequest {
3636
val dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ"
3737
implicit val jodaDateTimeReads = Reads.jodaDateReads(dateFormat)
3838

39+
implicit def optionStringReader: Reads[Option[String]] = Reads { (json: JsValue) =>
40+
json match {
41+
case JsString(value) => JsSuccess(Some(value))
42+
case _ => JsSuccess(None)
43+
}
44+
}
45+
3946
implicit val reader: Reads[PullRequest] = (
4047
(__ \ "id").read[Long] and
4148
(__ \ "title").read[String] and

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,21 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
5353
val jpromise = client.url(request.url).sign(OAuthCalculator(KEY, TOKEN)).withFollowRedirects(follow = true).post(values)
5454
val result = Await.result(jpromise, Duration(10, SECONDS))
5555

56-
if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED).contains(result.status)) {
56+
val value = if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED).contains(result.status)) {
5757
val body = result.body
5858

5959
val jsValue = parseJson(body)
6060
jsValue match {
6161
case Right(responseObj) =>
6262
RequestResponse(responseObj.asOpt[T])
6363
case Left(message) =>
64-
RequestResponse(None, message = message.detail, hasError = true)
64+
RequestResponse[T](None, message = message.detail, hasError = true)
6565
}
6666
} else {
67-
RequestResponse(None, result.statusText, hasError = true)
67+
RequestResponse[T](None, result.statusText, hasError = true)
6868
}
69+
client.close()
70+
value
6971
}
7072

7173
/* copy paste from post ... */
@@ -75,11 +77,13 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
7577
val jpromise = client.url(url).sign(OAuthCalculator(KEY, TOKEN)).withFollowRedirects(follow = true).delete()
7678
val result = Await.result(jpromise, Duration(10, SECONDS))
7779

78-
if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED, HTTPStatusCodes.NO_CONTENT).contains(result.status)) {
80+
val value = if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED, HTTPStatusCodes.NO_CONTENT).contains(result.status)) {
7981
RequestResponse(Option(true))
8082
} else {
81-
RequestResponse(None, result.statusText, hasError = true)
83+
RequestResponse[Boolean](None, result.statusText, hasError = true)
8284
}
85+
client.close()
86+
value
8387
}
8488

8589
private def get(url: String): Either[ResponseError, JsValue] = {
@@ -88,12 +92,14 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
8892
val jpromise = client.url(url).sign(OAuthCalculator(KEY, TOKEN)).withFollowRedirects(follow = true).get()
8993
val result = Await.result(jpromise, Duration(10, SECONDS))
9094

91-
if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED).contains(result.status)) {
95+
val value = if (Seq(HTTPStatusCodes.OK, HTTPStatusCodes.CREATED).contains(result.status)) {
9296
val body = result.body
9397
parseJson(body)
9498
} else {
9599
Left(ResponseError(java.util.UUID.randomUUID().toString, result.statusText, result.statusText))
96100
}
101+
client.close()
102+
value
97103
}
98104

99105
private def parseJson(input: String): Either[ResponseError, JsValue] = {

0 commit comments

Comments
 (0)