@@ -2,24 +2,21 @@ package com.codacy.client.client
2
2
3
3
import java .net .URI
4
4
5
- import akka .stream .Materializer
6
5
import com .codacy .client .client .Authentication ._
7
6
import com .codacy .client .util .HTTPStatusCodes
8
7
import com .codacy .client .util .Implicits .URIQueryParam
8
+ import com .ning .http .client .AsyncHttpClientConfig
9
+ import play .api .http .Writeable
9
10
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 }
15
12
16
13
import scala .compat .Platform .EOL
17
14
import scala .concurrent .Await
18
15
import scala .concurrent .duration .{Duration , SECONDS }
19
16
import scala .util .{Failure , Properties , Success , Try }
20
17
21
18
22
- class BitbucketClient (credentials : Credentials )( implicit materializer : Materializer ) {
19
+ class BitbucketClient (credentials : Credentials ) {
23
20
24
21
private lazy val requestTimeout = Duration (10 , SECONDS )
25
22
@@ -75,7 +72,7 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
75
72
/*
76
73
* Does an API request
77
74
*/
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 =>
79
76
val jpromise = client.url(request.url)
80
77
.authenticate(authenticator)
81
78
.withFollowRedirects(follow = true )
@@ -112,7 +109,7 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
112
109
value
113
110
}
114
111
115
- def postForm [D , T ](request : Request [T ], values : D )(implicit reader : Reads [T ], writer : BodyWritable [D ]): RequestResponse [T ] = {
112
+ def postForm [D , T ](request : Request [T ], values : D )(implicit reader : Reads [T ], writer : Writeable [D ]): RequestResponse [T ] = {
116
113
performRequest(" POST" , request, values)
117
114
}
118
115
@@ -180,15 +177,15 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
180
177
}
181
178
}
182
179
183
- private def withClientEither [T ](block : StandaloneAhcWSClient => Either [ResponseError , T ]): Either [ResponseError , T ] = {
180
+ private def withClientEither [T ](block : NingWSClient => Either [ResponseError , T ]): Either [ResponseError , T ] = {
184
181
withClient(block) match {
185
182
case Success (res) => res
186
183
case Failure (error) =>
187
184
Left (ResponseError (" Request failed" , getFullStackTrace(error), error.getMessage))
188
185
}
189
186
}
190
187
191
- private def withClientRequest [T ](block : StandaloneAhcWSClient => RequestResponse [T ]): RequestResponse [T ] = {
188
+ private def withClientRequest [T ](block : NingWSClient => RequestResponse [T ]): RequestResponse [T ] = {
192
189
withClient(block) match {
193
190
case Success (res) => res
194
191
case Failure (error) =>
@@ -202,8 +199,10 @@ class BitbucketClient(credentials: Credentials)(implicit materializer: Materiali
202
199
}
203
200
}
204
201
205
- private def withClient [T ](block : StandaloneAhcWSClient => T ): Try [T ] = {
206
- val client = new StandaloneAhcWSClient (new DefaultAsyncHttpClient )
202
+ private def withClient [T ](block : NingWSClient => T ): Try [T ] = {
203
+ val config = new NingAsyncHttpClientConfigBuilder ().build()
204
+ val clientConfig = new AsyncHttpClientConfig .Builder (config).build()
205
+ val client = new NingWSClient (clientConfig)
207
206
val result = Try (block(client))
208
207
client.close()
209
208
result
0 commit comments