BuyWhatNative/app/src/main/java/xyz/mtfos/tools/apiObject.kt

68 lines
1.8 KiB
Kotlin

package xyz.mtfos.tools
import android.content.Context
import android.util.Log
import okhttp3.*
import org.json.JSONObject
import java.io.IOException
/**
* Created by jay on 2017/7/5.
*/
open class apiObject constructor(val ctx: Context) {
private val tag: String = "API Object"
private val client: OkHttpClient = OkHttpClient()
interface apicb {
fun Callback(json: JSONObject?)
}
init {
Log.d(tag, "API Object Initialized")
}
open fun getStore(cb: apicb){
val url:String = "${projectSet.apiUrl}/store"
var req:Request = Request.Builder()
.url(url)
.build()
send(req, object : apicb {
override fun Callback(json: JSONObject?) {
cb.Callback(json)
}
})
}
open fun getItems(storeId: Int, cb: apicb) {
val url:String = "${projectSet.apiUrl}/item/${storeId}"
val req:Request = Request.Builder()
.url(url)
.build()
send(req, object : apicb {
override fun Callback(json: JSONObject?) {
cb.Callback(json)
}
})
}
fun send(req: Request, cb: apicb) {
client.newCall(req).enqueue(object: Callback{
override fun onFailure(call: Call?, e: IOException?) {
e?.printStackTrace()
val json : JSONObject = JSONObject()
json.put("status", 0)
json.put("message", "System Error")
cb.Callback(json)
}
override fun onResponse(call: Call?, response: Response?) {
var str: String? = null
str = response?.body()!!.string()
val json : JSONObject = JSONObject(str)
cb.Callback(json)
}
})
}
}