68 lines
1.8 KiB
Kotlin
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)
|
|
}
|
|
})
|
|
}
|
|
} |