Add OkHttp logging interceptor
This commit is contained in:
21
app/src/main/java/gq/kirmanak/mealie/data/OkHttpBuilder.kt
Normal file
21
app/src/main/java/gq/kirmanak/mealie/data/OkHttpBuilder.kt
Normal file
@@ -0,0 +1,21 @@
|
||||
package gq.kirmanak.mealie.data
|
||||
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.logging.HttpLoggingInterceptor
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
class OkHttpBuilder @Inject constructor() {
|
||||
fun buildOkHttp(): OkHttpClient {
|
||||
return OkHttpClient.Builder()
|
||||
.addNetworkInterceptor(buildLoggingInterceptor())
|
||||
.build()
|
||||
}
|
||||
|
||||
private fun buildLoggingInterceptor() : Interceptor {
|
||||
val interceptor = HttpLoggingInterceptor { message -> Timber.v(message) }
|
||||
interceptor.level = HttpLoggingInterceptor.Level.BODY
|
||||
return interceptor
|
||||
}
|
||||
}
|
||||
@@ -3,19 +3,20 @@ package gq.kirmanak.mealie.data
|
||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.MediaType
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
import retrofit2.Retrofit
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
@ExperimentalSerializationApi
|
||||
class RetrofitBuilder @Inject constructor() {
|
||||
class RetrofitBuilder @Inject constructor(private val okHttpBuilder: OkHttpBuilder) {
|
||||
fun buildRetrofit(baseUrl: String): Retrofit {
|
||||
Timber.v("buildRetrofit() called with: baseUrl = $baseUrl")
|
||||
val url = if (baseUrl.startsWith("http")) baseUrl else "https://$baseUrl"
|
||||
val contentType = "application/json".toMediaType()
|
||||
return Retrofit.Builder()
|
||||
.baseUrl(url)
|
||||
.client(okHttpBuilder.buildOkHttp())
|
||||
.addConverterFactory(Json.asConverterFactory(contentType))
|
||||
.build()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user