separate interceptors; added language interceptor for api responses

This commit is contained in:
2024-07-13 17:04:18 +03:00
parent f545a9c4e5
commit dfdc48b682
10 changed files with 124 additions and 13 deletions
@@ -0,0 +1,3 @@
package com.meloda.app.fast.common
data class ApiLanguage(val value: String)
@@ -1,31 +0,0 @@
package com.meloda.app.fast.common
import androidx.core.net.toUri
import okhttp3.Interceptor
import okhttp3.Response
import java.net.URLEncoder
class AuthInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val builder = chain.request().url.newBuilder()
val uri = builder.build().toUri().toString().toUri()
if (uri.getQueryParameter("v") == null) {
builder.addQueryParameter(
name = "v",
value = URLEncoder.encode(AppConstants.API_VERSION, "utf-8")
)
}
if (UserConfig.accessToken.isNotBlank()) {
builder.addQueryParameter(
"access_token",
URLEncoder.encode(UserConfig.accessToken, "utf-8")
)
}
return chain.proceed(chain.request().newBuilder().apply { url(builder.build()) }.build())
}
}
@@ -0,0 +1,5 @@
package com.meloda.app.fast.common.provider
interface Provider<T> {
fun provide(): T?
}