1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 07:56:19 +00:00

Polish code. Send only info required for each type of request

This commit is contained in:
Abel García de Prada 2020-12-23 18:00:11 +01:00
parent 9208af89fe
commit df8e10fac3
2 changed files with 48 additions and 15 deletions

View File

@ -59,13 +59,7 @@ class TokenRequestRemoteOperation(
var result: RemoteOperationResult<TokenResponse>
try {
val requestBody = FormBody.Builder()
.add(HEADER_AUTHORIZATION_CODE, tokenRequestParams.authorizationCode)
.add(HEADER_GRANT_TYPE, tokenRequestParams.grantType)
.add(HEADER_REDIRECT_URI, tokenRequestParams.redirectUri)
.add(HEADER_CODE_VERIFIER, tokenRequestParams.codeVerifier)
.add(HEADER_REFRESH_TOKEN, tokenRequestParams.refreshToken.orEmpty())
.build()
val requestBody = tokenRequestParams.toRequestBody()
val postMethod = PostMethod(URL(tokenRequestParams.tokenEndpoint), requestBody)

View File

@ -23,12 +23,51 @@
*/
package com.owncloud.android.lib.resources.oauth.params
class TokenRequestParams(
import com.owncloud.android.lib.common.http.HttpConstants
import okhttp3.FormBody
import okhttp3.RequestBody
sealed class TokenRequestParams(
val tokenEndpoint: String,
val authorizationCode: String,
val grantType: String,
val redirectUri: String,
val refreshToken: String? = null,
val codeVerifier: String,
val clientAuth: String
)
val clientAuth: String,
val grantType: String
) {
abstract fun toRequestBody(): RequestBody
class Authorization(
tokenEndpoint: String,
clientAuth: String,
grantType: String,
val authorizationCode: String,
val redirectUri: String,
val codeVerifier: String
) : TokenRequestParams(tokenEndpoint, clientAuth, grantType) {
override fun toRequestBody(): RequestBody {
return FormBody.Builder()
.add(HttpConstants.HEADER_AUTHORIZATION_CODE, authorizationCode)
.add(HttpConstants.HEADER_GRANT_TYPE, grantType)
.add(HttpConstants.HEADER_REDIRECT_URI, redirectUri)
.add(HttpConstants.HEADER_CODE_VERIFIER, codeVerifier)
.build()
}
}
class RefreshToken(
tokenEndpoint: String,
clientAuth: String,
grantType: String,
val refreshToken: String? = null
) : TokenRequestParams(tokenEndpoint, clientAuth, grantType) {
override fun toRequestBody(): RequestBody {
return FormBody.Builder().apply {
add(HttpConstants.HEADER_GRANT_TYPE, grantType)
if (!refreshToken.isNullOrBlank()) {
add(HttpConstants.HEADER_REFRESH_TOKEN, refreshToken)
}
}.build()
}
}
}