23 lines
924 B
Kotlin
23 lines
924 B
Kotlin
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.Companion.toMediaType
|
|
import retrofit2.Retrofit
|
|
import timber.log.Timber
|
|
import javax.inject.Inject
|
|
|
|
@ExperimentalSerializationApi
|
|
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()
|
|
}
|
|
} |