Fix warnings/formatting in APIClient and WishkoboneApplication
This commit is contained in:
parent
f7b78a0a8a
commit
9664fcb4c0
2 changed files with 13 additions and 88 deletions
|
@ -4,24 +4,19 @@ import okhttp3.*
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.RequestBody.Companion.toRequestBody
|
import okhttp3.RequestBody.Companion.toRequestBody
|
||||||
import java.io.IOException
|
|
||||||
import kotlin.Throws
|
|
||||||
import java.util.HashMap
|
import java.util.HashMap
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Josh on 2/09/2014.
|
* Created by Josh on 2/09/2014.
|
||||||
*/
|
*/
|
||||||
class APIClient {
|
class APIClient {
|
||||||
private var cookieValue: String? = null
|
var cookieValue: String? = null
|
||||||
fun setCookie(value: String?) {
|
|
||||||
cookieValue = value
|
|
||||||
}
|
|
||||||
|
|
||||||
operator fun get(url: String, params: HashMap<String?, String?>?, responseHandler: Callback?) {
|
operator fun get(url: String, params: HashMap<String, String?>?, responseHandler: Callback) {
|
||||||
var urlBuilder: HttpUrl.Builder = getAbsoluteUrl(url).toHttpUrl().newBuilder()
|
var urlBuilder: HttpUrl.Builder = getAbsoluteUrl(url).toHttpUrl().newBuilder()
|
||||||
params?.let {
|
params?.let {
|
||||||
for (key in it.keys.filterNotNull()) {
|
for (key in it.keys) {
|
||||||
urlBuilder = urlBuilder.setQueryParameter(key, params[key])
|
urlBuilder = urlBuilder.setQueryParameter(key, it[key])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val request: Request = Request.Builder().url(urlBuilder.build())
|
val request: Request = Request.Builder().url(urlBuilder.build())
|
||||||
|
@ -32,36 +27,10 @@ class APIClient {
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
.addHeader("X-Requested-With", "XMLHttpRequest")
|
||||||
.addHeader("Cookie", "KoboSession=$cookieValue")
|
.addHeader("Cookie", "KoboSession=$cookieValue")
|
||||||
.build()
|
.build()
|
||||||
client.newCall(request).enqueue(responseHandler!!)
|
client.newCall(request).enqueue(responseHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun post(url: String, params: HashMap<String?, String?>, responseHandler: Callback?) {
|
fun post(url: String, payload: String, contentType: String, responseHandler: Callback) {
|
||||||
this.post(url, params, "application/x-www-form-urlencoded", responseHandler)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun post(
|
|
||||||
url: String,
|
|
||||||
params: HashMap<String?, String?>,
|
|
||||||
contentType: String,
|
|
||||||
responseHandler: Callback?
|
|
||||||
) {
|
|
||||||
var builder = FormBody.Builder()
|
|
||||||
for (key in params.keys.filterNotNull()) {
|
|
||||||
builder = builder.add(key, params[key].toString())
|
|
||||||
}
|
|
||||||
val formBody: FormBody = builder.build()
|
|
||||||
val request: Request = Request.Builder().url(getAbsoluteUrl(url)).post(formBody)
|
|
||||||
.addHeader("User-Agent", agent)
|
|
||||||
.addHeader("Referer", "https://www.kobo.com/au/en/account/wishlist")
|
|
||||||
.addHeader("Accept", "application / json, text / javascript, * / *; q = 0.01")
|
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
|
||||||
.addHeader("Cookie", "KoboSession=$cookieValue")
|
|
||||||
.addHeader("Content-type", contentType)
|
|
||||||
.build()
|
|
||||||
client.newCall(request).enqueue(responseHandler!!)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun post(url: String, payload: String, contentType: String, responseHandler: Callback?) {
|
|
||||||
val body: RequestBody = payload.toRequestBody(contentType.toMediaType())
|
val body: RequestBody = payload.toRequestBody(contentType.toMediaType())
|
||||||
val request: Request = Request.Builder().url(getAbsoluteUrl(url)).post(body)
|
val request: Request = Request.Builder().url(getAbsoluteUrl(url)).post(body)
|
||||||
.addHeader("User-Agent", agent)
|
.addHeader("User-Agent", agent)
|
||||||
|
@ -72,50 +41,7 @@ class APIClient {
|
||||||
.addHeader("Cookie", "KoboSession=$cookieValue")
|
.addHeader("Cookie", "KoboSession=$cookieValue")
|
||||||
.addHeader("Content-type", contentType)
|
.addHeader("Content-type", contentType)
|
||||||
.build()
|
.build()
|
||||||
client.newCall(request).enqueue(responseHandler!!)
|
client.newCall(request).enqueue(responseHandler)
|
||||||
}
|
|
||||||
|
|
||||||
@Throws(IOException::class)
|
|
||||||
fun syncGet(url: String, params: HashMap<String, String>?): Response {
|
|
||||||
var urlBuilder: HttpUrl.Builder = getAbsoluteUrl(url).toHttpUrl().newBuilder()
|
|
||||||
params?.let {
|
|
||||||
for (key in it.keys) {
|
|
||||||
urlBuilder = urlBuilder.setQueryParameter(key, it[key])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
val request: Request = Request.Builder().url(urlBuilder.build())
|
|
||||||
.get()
|
|
||||||
.addHeader("User-agent", agent)
|
|
||||||
.addHeader("Referer", "https://www.kobo.com/au/en/account/wishlist")
|
|
||||||
.addHeader("Accept", "application / json, text / javascript, * / *; q = 0.01")
|
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
|
||||||
.addHeader("Cookie", "KoboSession=$cookieValue")
|
|
||||||
.build()
|
|
||||||
return client.newCall(request).execute()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Throws(IOException::class)
|
|
||||||
fun syncPost(url: String, payload: String, contentType: String): Response {
|
|
||||||
val body: RequestBody = payload.toRequestBody(contentType.toMediaType())
|
|
||||||
val request: Request = Request.Builder().url(getAbsoluteUrl(url)).post(body)
|
|
||||||
.addHeader("User-agent", agent)
|
|
||||||
.addHeader("Referer", "https://www.kobo.com/au/en/account/wishlist")
|
|
||||||
.addHeader("Accept", "application/json, text/javascript, */*; q=0.01")
|
|
||||||
.addHeader("X-Requested-With", "XMLHttpRequest")
|
|
||||||
.addHeader("Cookie", String.format("KoboSession=%s;", cookieValue))
|
|
||||||
.addHeader("Content-type", contentType)
|
|
||||||
.build()
|
|
||||||
return client.newCall(request).execute()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Throws(IOException::class)
|
|
||||||
fun syncPost(url: String, params: HashMap<String, String>): Response {
|
|
||||||
var builder = FormBody.Builder()
|
|
||||||
for (key in params.keys) {
|
|
||||||
builder = builder.add(key, params[key].toString())
|
|
||||||
}
|
|
||||||
val formBody: FormBody = builder.build()
|
|
||||||
return this.syncPost(url, formBody.toString(), "application/x-www-form-urlencoded")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
@ -3,27 +3,27 @@ package au.com.joshsharp.wishkobone
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
|
|
||||||
class WishkoboneApplication: Application() {
|
class WishkoboneApplication : Application() {
|
||||||
|
|
||||||
var client = APIClient()
|
var client = APIClient()
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
if (getCookie() != null){
|
getCookie()?.let {
|
||||||
client.setCookie(getCookie())
|
client.cookieValue = it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getCookie(): String? {
|
fun getCookie(): String? {
|
||||||
val prefs = getSharedPreferences(getString(R.string.app_name), 0)
|
val prefs = getSharedPreferences(getString(R.string.app_name), 0)
|
||||||
return prefs.getString("cookie",null)
|
return prefs.getString("cookie", null)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setCookie(cookie: String) {
|
fun setCookie(cookie: String) {
|
||||||
val editor = getSharedPreferences(getString(R.string.app_name), 0).edit()
|
val editor = getSharedPreferences(getString(R.string.app_name), 0).edit()
|
||||||
editor.putString("cookie", cookie)
|
editor.putString("cookie", cookie)
|
||||||
editor.apply()
|
editor.apply()
|
||||||
client.setCookie(cookie)
|
client.cookieValue = cookie
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ class WishkoboneApplication: Application() {
|
||||||
val editor = getSharedPreferences(getString(R.string.app_name), 0).edit()
|
val editor = getSharedPreferences(getString(R.string.app_name), 0).edit()
|
||||||
editor.clear()
|
editor.clear()
|
||||||
editor.apply()
|
editor.apply()
|
||||||
client = APIClient() // remove cookie
|
client.cookieValue = null
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue