Skip to content

Commit

Permalink
Added refresh token functionality to the non GMS lib. (#68)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anton Tchistiakova committed Jul 6, 2023
1 parent f4cbdf6 commit dcee4e6
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import com.omh.android.auth.api.models.OmhAuthStatusCodes
import com.omh.android.storage.api.OmhStorageClient
import com.omh.android.storage.api.domain.model.OmhStorageException
import com.omh.android.storage.api.domain.repository.OmhFileRepository
import com.omh.android.storage.api.drive.nongms.data.GoogleRetrofitImpl
import com.omh.android.storage.api.drive.nongms.data.repository.NonGmsFileRepositoryImpl
import com.omh.android.storage.api.drive.nongms.data.retrofit.GoogleRetrofitImpl
import com.omh.android.storage.api.drive.nongms.data.source.NonGmsFileRemoteDataSourceImpl
import kotlin.jvm.Throws

internal class OmhNonGmsStorageClientImpl private constructor(
authClient: OmhAuthClient
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.omh.android.storage.api.drive.nongms.data
package com.omh.android.storage.api.drive.nongms.data.retrofit

import com.omh.android.auth.api.OmhCredentials
import com.omh.android.storage.api.drive.nongms.BuildConfig
import com.omh.android.storage.api.drive.nongms.data.GoogleStorageApiService
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import retrofit2.Retrofit
Expand All @@ -10,8 +11,8 @@ import retrofit2.converter.jackson.JacksonConverterFactory
internal class GoogleRetrofitImpl(private val omhCredentials: OmhCredentials) {

companion object {
private const val HEADER_AUTHORIZATION_NAME = "Authorization"
private const val BEARER = "Bearer %s"
internal const val HEADER_AUTHORIZATION_NAME = "Authorization"
internal const val BEARER = "Bearer %s"

private var instance: GoogleRetrofitImpl? = null

Expand Down Expand Up @@ -42,11 +43,13 @@ internal class GoogleRetrofitImpl(private val omhCredentials: OmhCredentials) {
}

private fun createOkHttpClient(): OkHttpClient {
val authenticator = StorageAuthenticator(omhCredentials)
return OkHttpClient.Builder()
.addInterceptor { chain ->
val request = setupRequestInterceptor(chain)
chain.proceed(request)
}
.authenticator(authenticator)
.build()
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.omh.android.storage.api.drive.nongms.data.retrofit

import com.omh.android.auth.api.OmhCredentials
import okhttp3.Authenticator
import okhttp3.Request
import okhttp3.Response
import okhttp3.Route

internal class StorageAuthenticator(private val credentials: OmhCredentials) : Authenticator {

override fun authenticate(route: Route?, response: Response): Request? {
val refreshedToken = credentials.blockingRefreshToken() ?: return null
return response.request
.newBuilder()
.header(
name = GoogleRetrofitImpl.HEADER_AUTHORIZATION_NAME,
value = GoogleRetrofitImpl.BEARER.format(refreshedToken)
)
.build()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import com.omh.android.storage.api.domain.model.OmhStorageStatusCodes.DOWNLOAD_E
import com.omh.android.storage.api.domain.model.OmhStorageStatusCodes.DOWNLOAD_GOOGLE_WORKSPACE_ERROR
import com.omh.android.storage.api.domain.model.OmhStorageStatusCodes.UPDATE_CONTENT_FILE
import com.omh.android.storage.api.domain.model.OmhStorageStatusCodes.UPDATE_META_DATA
import com.omh.android.storage.api.drive.nongms.data.GoogleRetrofitImpl
import com.omh.android.storage.api.drive.nongms.data.GoogleStorageApiService
import com.omh.android.storage.api.drive.nongms.data.retrofit.GoogleRetrofitImpl
import com.omh.android.storage.api.drive.nongms.data.source.body.CreateFileRequestBody
import com.omh.android.storage.api.drive.nongms.data.source.mapper.toFile
import com.omh.android.storage.api.drive.nongms.data.source.mapper.toFileList
Expand Down

0 comments on commit dcee4e6

Please sign in to comment.