SubwayTooter-Android-App/app/src/main/java/jp/juggler/util/HttpUtils.kt

38 lines
1.3 KiB
Kotlin
Raw Normal View History

2018-12-02 11:25:00 +01:00
package jp.juggler.util
import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaType
2018-12-02 11:25:00 +01:00
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
2018-12-02 11:25:00 +01:00
val MEDIA_TYPE_FORM_URL_ENCODED: MediaType =
"application/x-www-form-urlencoded".toMediaType()
2018-12-02 11:25:00 +01:00
val MEDIA_TYPE_JSON: MediaType =
"application/json;charset=UTF-8".toMediaType()
2018-12-02 11:25:00 +01:00
fun String.toFormRequestBody() = toRequestBody(MEDIA_TYPE_FORM_URL_ENCODED)
2018-12-02 11:25:00 +01:00
fun JsonObject.toRequestBody(mediaType: MediaType = MEDIA_TYPE_JSON): RequestBody =
toString().toRequestBody(contentType = mediaType)
2018-12-02 11:25:00 +01:00
fun RequestBody.toPost(): Request.Builder =
Request.Builder().post(this)
2018-12-02 11:25:00 +01:00
fun RequestBody.toPut(): Request.Builder =
Request.Builder().put(this)
2018-12-02 11:25:00 +01:00
fun RequestBody.toDelete(): Request.Builder =
Request.Builder().delete(this)
2018-12-02 11:25:00 +01:00
fun RequestBody.toPatch(): Request.Builder =
Request.Builder().patch(this)
2018-12-02 11:25:00 +01:00
fun RequestBody.toRequest(methodArg: String): Request.Builder =
Request.Builder().method(methodArg, this)
2018-12-02 11:25:00 +01:00
fun JsonObject.toPostRequestBuilder(): Request.Builder = toRequestBody().toPost()
fun JsonObject.toPutRequestBuilder(): Request.Builder = toRequestBody().toPut()
fun JsonObject.toDeleteRequestBuilder(): Request.Builder = toRequestBody().toDelete()