1
1
package com .codacy .client .bitbucket .client
2
2
3
3
import java .net .URI
4
- import java .util .concurrent .{SynchronousQueue , ThreadPoolExecutor , TimeUnit }
5
4
5
+ import com .codacy .client .bitbucket .client .Authentication ._
6
6
import com .codacy .client .bitbucket .util .HTTPStatusCodes
7
7
import com .codacy .client .bitbucket .util .Implicits .URIQueryParam
8
8
import com .ning .http .client .AsyncHttpClientConfig
9
9
import play .api .http .{ContentTypeOf , Writeable }
10
10
import play .api .libs .json ._
11
- import play .api .libs .oauth ._
12
11
import play .api .libs .ws .ning .{NingAsyncHttpClientConfigBuilder , NingWSClient }
13
12
14
13
import scala .concurrent .Await
15
14
import scala .concurrent .duration .{Duration , SECONDS }
16
15
import scala .util .{Failure , Properties , Success , Try }
17
16
18
- class BitbucketClient (key : String , secretKey : String , token : String , secretToken : String ) {
19
17
20
- private lazy val KEY = ConsumerKey (key, secretKey)
21
- private lazy val TOKEN = RequestToken (token, secretToken)
18
+
19
+ class BitbucketClient ( credentials : Credentials ) {
22
20
23
21
private lazy val requestTimeout = Duration (10 , SECONDS )
24
- private lazy val requestSigner = OAuthCalculator (KEY , TOKEN )
22
+
23
+ private lazy val authenticator = Authenticator .fromCredentials(credentials)
25
24
26
25
/*
27
26
* Does an API request and parses the json output into a class
@@ -75,7 +74,7 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
75
74
*/
76
75
private def performRequest [D , T ](method : String , request : Request [T ], values : D )(implicit reader : Reads [T ], writer : Writeable [D ], contentType : ContentTypeOf [D ]): RequestResponse [T ] = withClientRequest { client =>
77
76
val jpromise = client.url(request.url)
78
- .sign(requestSigner )
77
+ .authenticate(authenticator )
79
78
.withFollowRedirects(follow = true )
80
79
.withMethod(method).withBody(values).execute()
81
80
val result = Await .result(jpromise, requestTimeout)
@@ -128,7 +127,7 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
128
127
/* copy paste from post ... */
129
128
def delete [T ](url : String ): RequestResponse [Boolean ] = withClientRequest { client =>
130
129
val jpromise = client.url(url)
131
- .sign(requestSigner )
130
+ .authenticate(authenticator )
132
131
.withFollowRedirects(follow = true )
133
132
.delete()
134
133
val result = Await .result(jpromise, requestTimeout)
@@ -144,7 +143,7 @@ class BitbucketClient(key: String, secretKey: String, token: String, secretToken
144
143
145
144
private def get (url : String ): Either [ResponseError , JsValue ] = withClientEither { client =>
146
145
val jpromise = client.url(url)
147
- .sign(requestSigner )
146
+ .authenticate(authenticator )
148
147
.withFollowRedirects(follow = true )
149
148
.get()
150
149
val result = Await .result(jpromise, requestTimeout)
0 commit comments