1 package host.exp.exponent.network
2 
3 import okhttp3.Headers
4 import okhttp3.Response
5 import okhttp3.ResponseBody
6 import java.io.IOException
7 import java.io.InputStream
8 
9 class OkHttpV1ExpoResponse(private val okHttpResponse: Response) : ExpoResponse {
10   internal inner class OkHttpV1ExpoBody(private val responseBody: ResponseBody) : ExpoBody {
11     @Throws(IOException::class)
stringnull12     override fun string(): String = responseBody.string()
13 
14     override fun byteStream(): InputStream = responseBody.byteStream()
15 
16     @Throws(IOException::class)
17     override fun bytes(): ByteArray = responseBody.bytes()
18   }
19 
20   inner class OkHttpV1ExpoHeaders(val headers: Headers) : ExpoHeaders {
21     override fun get(name: String): String? = headers[name]
22   }
23 
24   override val isSuccessful: Boolean = okHttpResponse.isSuccessful
25 
bodynull26   override fun body(): ExpoBody = OkHttpV1ExpoBody(okHttpResponse.body!!)
27 
28   override fun code(): Int = okHttpResponse.code
29 
30   override fun headers(): ExpoHeaders = OkHttpV1ExpoHeaders(okHttpResponse.headers)
31 
32   override fun networkResponse(): ExpoResponse? = okHttpResponse.networkResponse?.let { OkHttpV1ExpoResponse(it) }
33 }
34