From 90ee75489b8d8e1ee1c7770a07f14cc0fec56335 Mon Sep 17 00:00:00 2001 From: "Hector A. Narvaez" Date: Tue, 16 May 2023 15:44:50 -0500 Subject: [PATCH 1/2] Update version of omh auth library --- build.gradle.kts | 1 + buildSrc/src/main/kotlin/Dependencies.kt | 3 +++ buildSrc/src/main/kotlin/Versions.kt | 3 +++ .../api/drive/nongms/OmhStorageClientImpl.kt | 14 ++++++-------- .../api/drive/nongms/OmhStorageFactoryImpl.kt | 7 +++++-- .../api/drive/nongms/data/GoogleRetrofitImpl.kt | 10 ++++++---- .../nongms/data/source/FileRemoteDataSource.kt | 5 +++-- storage-api/build.gradle.kts | 3 ++- .../omh/android/storage/api/OmhStorageClient.kt | 8 ++++---- .../omh/android/storage/api/OmhStorageFactory.kt | 4 +++- .../omh/android/storage/api/OmhStorageProvider.kt | 5 +++-- 11 files changed, 39 insertions(+), 24 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 49c10e6e..7f52612b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,6 +3,7 @@ subprojects { mavenCentral() google() mavenLocal() + maven("https://s01.oss.sonatype.org/content/groups/staging/") } } diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 2f6962b2..e5148297 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -40,4 +40,7 @@ object Libs { val androidJunit by lazy { "androidx.test.ext:junit:${Versions.androidJunit}" } val mockk by lazy { "io.mockk:mockk:${Versions.mockk}" } val coroutineTesting by lazy { "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}" } + + // Auth + val omhAuthLibrary by lazy { "com.openmobilehub.android:auth-api:${Versions.omhAuth}" } } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 261be169..81e1f93f 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -32,4 +32,7 @@ object Versions { const val junit = "4.13.2" const val androidJunit = "1.1.5" const val mockk = "1.13.4" + + // Auth + const val omhAuth = "1.0.1" } diff --git a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt index 9dc0ce79..9972b0f4 100644 --- a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt +++ b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt @@ -1,11 +1,13 @@ package com.omh.android.storage.api.drive.nongms import android.content.Context +import com.omh.android.auth.api.OmhAuthClient import com.omh.android.storage.api.OmhStorageClient internal class OmhStorageClientImpl( - context: Context -) : OmhStorageClient { + context: Context, + authClient: OmhAuthClient +) : OmhStorageClient(authClient) { private val applicationContext: Context @@ -14,12 +16,8 @@ internal class OmhStorageClientImpl( } internal class Builder : OmhStorageClient.Builder { - override fun build(context: Context): OmhStorageClient { - return OmhStorageClientImpl(context) - } - } - override fun setupAccessToken(token: String) { - // Implement THIS + override fun build(context: Context, authClient: OmhAuthClient) = + OmhStorageClientImpl(context, authClient) } } diff --git a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageFactoryImpl.kt b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageFactoryImpl.kt index 6788fb91..d7e83b1a 100644 --- a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageFactoryImpl.kt +++ b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageFactoryImpl.kt @@ -1,11 +1,14 @@ package com.omh.android.storage.api.drive.nongms import android.content.Context +import com.omh.android.auth.api.OmhAuthClient +import com.omh.android.storage.api.OmhStorageClient import com.omh.android.storage.api.OmhStorageFactory class OmhStorageFactoryImpl : OmhStorageFactory { override fun getStorageClient( - context: Context - ) = OmhStorageClientImpl.Builder().build(context) + context: Context, + authClient: OmhAuthClient + ): OmhStorageClient = OmhStorageClientImpl.Builder().build(context, authClient) } diff --git a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/GoogleRetrofitImpl.kt b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/GoogleRetrofitImpl.kt index 47e82e90..e4b90504 100644 --- a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/GoogleRetrofitImpl.kt +++ b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/GoogleRetrofitImpl.kt @@ -1,5 +1,6 @@ package com.omh.android.storage.api.drive.nongms.data +import com.omh.android.auth.api.OmhCredentials import com.omh.android.storage.api.drive.nongms.BuildConfig import okhttp3.Interceptor import okhttp3.OkHttpClient @@ -7,16 +8,17 @@ import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.jackson.JacksonConverterFactory -internal class GoogleRetrofitImpl(private val bearerToken: String) { +internal class GoogleRetrofitImpl(private val omhCredentials: OmhCredentials) { companion object { private const val HEADER_AUTHORIZATION_NAME = "Authorization" + private const val BEARER = "Bearer %s" private var instance: GoogleRetrofitImpl? = null - internal fun getInstance(bearerToken: String): GoogleRetrofitImpl { + internal fun getInstance(omhCredentials: OmhCredentials): GoogleRetrofitImpl { if (instance == null) { - instance = GoogleRetrofitImpl(bearerToken) + instance = GoogleRetrofitImpl(omhCredentials) } return instance!! @@ -67,7 +69,7 @@ internal class GoogleRetrofitImpl(private val bearerToken: String) { .newBuilder() .addHeader( HEADER_AUTHORIZATION_NAME, - bearerToken + BEARER.format(omhCredentials.accessToken.orEmpty()) ) .build() diff --git a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/source/FileRemoteDataSource.kt b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/source/FileRemoteDataSource.kt index 4f670f6b..e42b8620 100644 --- a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/source/FileRemoteDataSource.kt +++ b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/data/source/FileRemoteDataSource.kt @@ -1,15 +1,16 @@ package com.omh.android.storage.api.drive.nongms.data.source +import com.omh.android.auth.api.OmhCredentials import com.omh.android.storage.api.data.source.remote.FileRemoteDataSource import com.omh.android.storage.api.domain.model.File import com.omh.android.storage.api.drive.nongms.data.GoogleRetrofitImpl import com.omh.android.storage.api.drive.nongms.data.source.mapper.toFileList -internal class FileRemoteDataSource : FileRemoteDataSource { +internal class FileRemoteDataSource(private val authCredentials: OmhCredentials) : FileRemoteDataSource { override fun getRootFilesList(): List { val response = GoogleRetrofitImpl - .getInstance("") + .getInstance(authCredentials) .getGoogleStorageApiService() .getRootFilesList() .execute() diff --git a/storage-api/build.gradle.kts b/storage-api/build.gradle.kts index 914361d6..0936d957 100644 --- a/storage-api/build.gradle.kts +++ b/storage-api/build.gradle.kts @@ -10,4 +10,5 @@ android { dependencies { implementation(Libs.reflection) testImplementation(Libs.junit) -} \ No newline at end of file + api(Libs.omhAuthLibrary) +} diff --git a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt index d0810c97..3a28fc5d 100644 --- a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt +++ b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt @@ -1,12 +1,12 @@ package com.omh.android.storage.api import android.content.Context +import com.omh.android.auth.api.OmhAuthClient -interface OmhStorageClient { +abstract class OmhStorageClient protected constructor(protected val authClient: OmhAuthClient) { interface Builder { - fun build(context: Context): OmhStorageClient - } - fun setupAccessToken(token: String) + fun build(context: Context, authClient: OmhAuthClient): OmhStorageClient + } } diff --git a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageFactory.kt b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageFactory.kt index 835cad1f..aab31a98 100644 --- a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageFactory.kt +++ b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageFactory.kt @@ -1,7 +1,9 @@ package com.omh.android.storage.api import android.content.Context +import com.omh.android.auth.api.OmhAuthClient interface OmhStorageFactory { - fun getStorageClient(context: Context): OmhStorageClient + + fun getStorageClient(context: Context, authClient: OmhAuthClient): OmhStorageClient } diff --git a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageProvider.kt b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageProvider.kt index b732bb43..71e7a634 100644 --- a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageProvider.kt +++ b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageProvider.kt @@ -1,6 +1,7 @@ package com.omh.android.storage.api import android.content.Context +import com.omh.android.auth.api.OmhAuthClient import kotlin.reflect.KClass object OmhStorageProvider { @@ -8,9 +9,9 @@ object OmhStorageProvider { private const val NGMS_ADDRESS = "com.omh.android.storage.api.drive.nongms.OmhStorageFactoryImpl" @SuppressWarnings("SwallowedException") - fun provideStorageClient(context: Context): OmhStorageClient { + fun provideStorageClient(context: Context, authClient: OmhAuthClient): OmhStorageClient { val clazz: KClass = Class.forName(NGMS_ADDRESS).kotlin val omhStorageFactory = clazz.objectInstance as OmhStorageFactory - return omhStorageFactory.getStorageClient(context) + return omhStorageFactory.getStorageClient(context, authClient) } } From 35706fc847849a589f238f6b9f41d0a2c4ea6dac Mon Sep 17 00:00:00 2001 From: "Hector A. Narvaez" Date: Tue, 16 May 2023 15:48:19 -0500 Subject: [PATCH 2/2] Update version of omh auth library --- .../android/storage/api/drive/nongms/OmhStorageClientImpl.kt | 3 +++ .../main/java/com/omh/android/storage/api/OmhStorageClient.kt | 2 ++ 2 files changed, 5 insertions(+) diff --git a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt index 9972b0f4..107b50ae 100644 --- a/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt +++ b/storage-api-drive-nongms/src/main/java/com/omh/android/storage/api/drive/nongms/OmhStorageClientImpl.kt @@ -20,4 +20,7 @@ internal class OmhStorageClientImpl( override fun build(context: Context, authClient: OmhAuthClient) = OmhStorageClientImpl(context, authClient) } + + // This will be implemented in a future PR + override fun getRepository() = Unit } diff --git a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt index 3a28fc5d..6d976a30 100644 --- a/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt +++ b/storage-api/src/main/java/com/omh/android/storage/api/OmhStorageClient.kt @@ -9,4 +9,6 @@ abstract class OmhStorageClient protected constructor(protected val authClient: fun build(context: Context, authClient: OmhAuthClient): OmhStorageClient } + + abstract fun getRepository() }