money.rave.common.backend.market.MarketHttpClient.kt Maven / Gradle / Ivy
package money.rave.common.backend.market
import money.rave.common.backend.FailureHttpRequestException
import money.rave.common.backend.QueryParameters
import money.rave.common.backend.client.AuthenticatedRequestBuilder
import money.rave.common.backend.client.http.HttpClient
import money.rave.common.backend.http.HttpMethod
import okhttp3.OkHttpClient
import okhttp3.Request
class MarketHttpClient(
private val baseUrl: String,
private val authenticatedRequestBuilder: AuthenticatedRequestBuilder,
) : HttpClient {
private val client = OkHttpClient()
override suspend fun get(url: String, queryParameters: QueryParameters?): String? =
request("$baseUrl$url", HttpMethod.GET, queryParameters, null)
override suspend fun post(url: String, body: String, queryParameters: QueryParameters?): String? =
request("$baseUrl$url", HttpMethod.POST, queryParameters, body)
private fun request(url: String, httpMethod: HttpMethod, queryParameters: QueryParameters?, body: String?): String? {
val builder = Request.Builder()
val request = authenticatedRequestBuilder.build(builder, url, httpMethod, queryParameters, body)
val response = client.newCall(request).execute()
if (!response.isSuccessful) {
throw FailureHttpRequestException(url, httpMethod, queryParameters, message = response.body?.string())
}
return response.body?.string()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy