diff --git a/lib/src/main/java/co/opensi/kkiapay/uikit/KKiapayApi.kt b/lib/src/main/java/co/opensi/kkiapay/uikit/KKiapayApi.kt deleted file mode 100644 index d14071c..0000000 --- a/lib/src/main/java/co/opensi/kkiapay/uikit/KKiapayApi.kt +++ /dev/null @@ -1,80 +0,0 @@ -package co.opensi.kkiapay.uikit - -import com.github.kittinunf.fuel.Fuel -import com.github.kittinunf.fuel.core.FileDataPart -import com.github.kittinunf.fuel.core.HeaderValues -import com.github.kittinunf.fuel.core.Method -import com.github.kittinunf.fuel.core.Parameters -import com.github.kittinunf.fuel.core.requests.upload -import com.github.kittinunf.fuel.util.FuelRouting -import org.json.JSONObject -import java.io.File - -/** - * @author Armel FAGBEDJI ( armel.fagbedji@opensi.co ) - * created at 01/03/2019 - */ - -internal sealed class KKiapayApi : FuelRouting { - override val basePath: String - get() = "https://api.kkiapay.me" - - override val headers: Map? - get() = mapOf("x-api-key" to listOf(apiKei)) - - override val method: Method - get() = Method.POST - - override val body: String? - get() = null - - override val bytes: ByteArray? - get() = null - - override val params: Parameters? - get() = emptyList() - - private class UploadFile(private val classification: String = "android_client_store_icon"): KKiapayApi(){ - override val path: String - get() = "/utils/upload" - - override val params: List>? - get() = listOf("type" to classification) - } - - private class CheckTansactionStatus(private val transactionId: String): KKiapayApi() { - override val path: String - get() = "/api/v1/transactions/status" - - override val headers: Map? - get() = super.headers?.plus("Content-Type" to listOf("application/json")) - - override val body: String? - get() = JSONObject().putOpt("transactionId", transactionId).toString() - } - - private class GetUploadedFile(private val fileKey: String): KKiapayApi() { - override val path: String - get() = "/utils/file/$fileKey" - - override val method: Method - get() = Method.GET - } - - companion object { - internal lateinit var apiKei: String - - internal fun uploadFile(file: File?) = - file?.run { Fuel.request(UploadFile()) - .upload() - .add { FileDataPart(this, name = "file") } } - - internal fun checkTransactionStatus(transactionId: String) = - Fuel.request(CheckTansactionStatus(transactionId)) - - internal fun getUploadedFile(fileKey: String?) = - fileKey?.run{ - Fuel.request(GetUploadedFile(fileKey)) - } - } -} \ No newline at end of file diff --git a/lib/src/main/java/co/opensi/kkiapay/uikit/Kkiapay.kt b/lib/src/main/java/co/opensi/kkiapay/uikit/Kkiapay.kt index b86c0bc..70bf3f5 100644 --- a/lib/src/main/java/co/opensi/kkiapay/uikit/Kkiapay.kt +++ b/lib/src/main/java/co/opensi/kkiapay/uikit/Kkiapay.kt @@ -16,8 +16,16 @@ import co.opensi.kkiapay.STATUS import co.opensi.kkiapay.Transaction import co.opensi.kkiapay.uikit.Me.Companion.KKIAPAY_REQUEST_CODE import co.opensi.kkiapay.uikit.Me.Companion.KKIAPAY_URL +import com.github.kittinunf.fuel.Fuel +import com.github.kittinunf.fuel.core.FileDataPart +import com.github.kittinunf.fuel.core.HeaderValues +import com.github.kittinunf.fuel.core.Method +import com.github.kittinunf.fuel.core.Parameters +import com.github.kittinunf.fuel.core.requests.upload +import com.github.kittinunf.fuel.util.FuelRouting import com.google.gson.Gson import org.apache.commons.codec.binary.Base64 +import org.json.JSONObject import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.io.File @@ -69,7 +77,7 @@ class Me internal constructor(context: Context, private val apiKey: String, priv val momoPay: MomoPay init { - KKiapayApi.apiKei = apiKey + KKiapayApi.apiKey = apiKey sdkConfig.run { convertColorToString(context) convertImageResToImageUrl(context) @@ -243,4 +251,71 @@ internal data class User(val amount: String = "", val userJson = Gson().toJson(preConvertion).toString() return String(Base64.encodeBase64(userJson.toByteArray())) } +} + + + + +private sealed class KKiapayApi : FuelRouting { + override val basePath: String + get() = "https://api.kkiapay.me" + + override val headers: Map? + get() = mapOf("x-api-key" to listOf(apiKey)) + + override val method: Method + get() = Method.POST + + override val body: String? + get() = null + + override val bytes: ByteArray? + get() = null + + override val params: Parameters? + get() = emptyList() + + private class UploadFile(private val classification: String = "android_client_store_icon"): KKiapayApi(){ + override val path: String + get() = "/utils/upload" + + override val params: List>? + get() = listOf("type" to classification) + } + + private class CheckTansactionStatus(private val transactionId: String): KKiapayApi() { + override val path: String + get() = "/api/v1/transactions/status" + + override val headers: Map? + get() = super.headers?.plus("Content-Type" to listOf("application/json")) + + override val body: String? + get() = JSONObject().putOpt("transactionId", transactionId).toString() + } + + private class GetUploadedFile(private val fileKey: String): KKiapayApi() { + override val path: String + get() = "/utils/file/$fileKey" + + override val method: Method + get() = Method.GET + } + + companion object { + internal lateinit var apiKey: String + + internal fun uploadFile(file: File?) = + file?.run { Fuel.request(UploadFile()) + .upload() + .add { FileDataPart(this, name = "file") } } + + internal fun checkTransactionStatus(transactionId: String) = + Fuel.request(CheckTansactionStatus(transactionId)) + + internal fun getUploadedFile(fileKey: String?) = + fileKey?.run{ + Fuel.request(GetUploadedFile(fileKey)) + } + } } \ No newline at end of file