Skip to content

Commit 5e47006

Browse files
Fixes oauth/access_token Interpreter (#509)
* Fixes https://github.com/login/oauth/access_token interpreter * Removes useless domain class * Fixes integration test
1 parent 99b256e commit 5e47006

7 files changed

Lines changed: 18 additions & 32 deletions

File tree

github4s/src/main/scala/github4s/Encoders.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ object Encoders {
5959
implicit val encoderSubscriptionRequest: Encoder[SubscriptionRequest] =
6060
deriveEncoder[SubscriptionRequest]
6161
implicit val encoderNewAuthRequest: Encoder[NewAuthRequest] = deriveEncoder[NewAuthRequest]
62-
implicit val encoderNewOAuthRequest: Encoder[NewOAuthRequest] = deriveEncoder[NewOAuthRequest]
6362
implicit val encoderNewGistRequest: Encoder[NewGistRequest] = deriveEncoder[NewGistRequest]
6463
implicit val encoderEditGistRequest: Encoder[EditGistRequest] = deriveEncoder[EditGistRequest]
6564
implicit val encoderNewIssueRequest: Encoder[NewIssueRequest] = deriveEncoder[NewIssueRequest]

github4s/src/main/scala/github4s/domain/Authorization.scala

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,3 @@ final case class OAuthToken(
3939
token_type: String,
4040
scope: String
4141
)
42-
43-
final case class NewOAuthRequest(
44-
client_id: String,
45-
client_secret: String,
46-
code: String,
47-
redirect_uri: String,
48-
state: String
49-
)

github4s/src/main/scala/github4s/http/HttpClient.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,15 @@ class HttpClient[F[_]: Sync](client: Client[F], val config: GithubConfig) {
9898
): F[GHResponse[Res]] =
9999
run[Req, Res](RequestBuilder(buildURL(method)).postMethod.withHeaders(headers).withData(data))
100100

101-
def postOAuth[Req: Encoder, Res: Decoder](
101+
def postOAuth[Res: Decoder](
102102
url: String,
103103
headers: Map[String, String] = Map.empty,
104-
data: Req
104+
params: Map[String, String] = Map.empty
105105
): F[GHResponse[Res]] =
106-
run[Req, Res](
106+
run[Unit, Res](
107107
RequestBuilder(url).postMethod
108108
.withHeaders(Map("Accept" -> "application/json") ++ headers)
109-
.withData(data)
109+
.withParams(params)
110110
)
111111

112112
def delete(

github4s/src/main/scala/github4s/interpreters/AuthInterpreter.scala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,15 @@ class AuthInterpreter[F[_]: Applicative](implicit
7373
state: String,
7474
headers: Map[String, String]
7575
): F[GHResponse[OAuthToken]] =
76-
client.postOAuth[NewOAuthRequest, OAuthToken](
76+
client.postOAuth[OAuthToken](
7777
url = client.config.accessTokenUrl,
7878
headers = headers,
79-
data = NewOAuthRequest(client_id, client_secret, code, redirect_uri, state)
79+
Map(
80+
"client_id" -> client_id,
81+
"client_secret" -> client_secret,
82+
"code" -> code,
83+
"redirect_uri" -> redirect_uri,
84+
"state" -> state
85+
)
8086
)
8187
}

github4s/src/test/scala/github4s/integration/AuthSpec.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ trait AuthSpec extends BaseIntegrationSpec {
7070
}
7171
.unsafeRunSync()
7272

73-
testIsLeft[GHError.BasicError, OAuthToken](response)
74-
response.statusCode shouldBe notFoundStatusCode
73+
testIsLeft[GHError.JsonParsingError, OAuthToken](response)
74+
response.statusCode shouldBe okStatusCode
7575
}
7676

7777
}

github4s/src/test/scala/github4s/unit/AuthSpec.scala

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,8 @@ class AuthSpec extends BaseSpec {
6262
val response: IO[GHResponse[OAuthToken]] =
6363
IO(GHResponse(oAuthToken.asRight, okStatusCode, Map.empty))
6464

65-
val request = NewOAuthRequest(
66-
validClientId,
67-
invalidClientSecret,
68-
validCode,
69-
validRedirectUri,
70-
validAuthState
71-
)
72-
73-
implicit val httpClientMock = httpClientMockPostOAuth[NewOAuthRequest, OAuthToken](
65+
implicit val httpClientMock = httpClientMockPostOAuth[OAuthToken](
7466
url = dummyConfig.accessTokenUrl,
75-
req = request,
7667
response = response
7768
)
7869

github4s/src/test/scala/github4s/utils/BaseSpec.scala

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,16 @@ trait BaseSpec extends AnyFlatSpec with Matchers with TestData with MockFactory
9494
httpClientMock
9595
}
9696

97-
def httpClientMockPostOAuth[In, Out](
97+
def httpClientMockPostOAuth[Out](
9898
url: String,
99-
req: In,
10099
response: IO[GHResponse[Out]]
101100
): HttpClient[IO] = {
102101
val httpClientMock = mock[HttpClientTest]
103102
(httpClientMock
104-
.postOAuth[In, Out](_: String, _: Map[String, String], _: In)(
105-
_: Encoder[In],
103+
.postOAuth[Out](_: String, _: Map[String, String], _: Map[String, String])(
106104
_: Decoder[Out]
107105
))
108-
.expects(url, headerUserAgent, req, *, *)
106+
.expects(url, headerUserAgent, *, *)
109107
.returns(response)
110108
httpClientMock
111109
}

0 commit comments

Comments
 (0)