mirror of https://github.com/hykilpikonna/AquaDX
[O] Proper null handling for http
parent
1a0e70636a
commit
b519537b69
|
@ -20,7 +20,7 @@ fun HttpRequest.Builder.post(body: Any? = null) = this.POST(when (body) {
|
||||||
}).send()
|
}).send()
|
||||||
|
|
||||||
|
|
||||||
inline fun <reified T> HttpResponse<String>.json(): T = body().json()
|
inline fun <reified T> HttpResponse<String>.json(): T? = body()?.json()
|
||||||
|
|
||||||
fun HttpRequest.Builder.postZ(body: String) = run {
|
fun HttpRequest.Builder.postZ(body: String) = run {
|
||||||
header("Content-Type" to "application/json")
|
header("Content-Type" to "application/json")
|
||||||
|
@ -29,6 +29,6 @@ fun HttpRequest.Builder.postZ(body: String) = run {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> HttpResponse<T>.header(key: String) = headers().firstValue(key).orElse(null)
|
fun <T> HttpResponse<T>.header(key: String) = headers().firstValue(key).orElse(null)
|
||||||
fun HttpResponse<ByteArray>.bodyString() = body().toString(Charsets.UTF_8)
|
fun HttpResponse<ByteArray>.bodyString() = body()?.toString(Charsets.UTF_8)
|
||||||
fun HttpResponse<ByteArray>.bodyZ() = ZLib.decompress(body()).decodeToString()
|
fun HttpResponse<ByteArray>.bodyZ() = body()?.let { ZLib.decompress(it)?.decodeToString() }
|
||||||
fun HttpResponse<ByteArray>.bodyMaybeZ() = if (header("Content-Encoding") == "deflate") bodyZ() else bodyString()
|
fun HttpResponse<ByteArray>.bodyMaybeZ() = if (header("Content-Encoding") == "deflate") bodyZ() else bodyString()
|
||||||
|
|
|
@ -30,8 +30,7 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
|
||||||
"$dns/sys/servlet/PowerOn".request()
|
"$dns/sys/servlet/PowerOn".request()
|
||||||
.header("Content-Type" to "application/x-www-form-urlencoded")
|
.header("Content-Type" to "application/x-www-form-urlencoded")
|
||||||
.header("Pragma" to "DFI")
|
.header("Pragma" to "DFI")
|
||||||
.post(
|
.post(AllNetBillingDecoder.encodeAllNet(mapOf(
|
||||||
AllNetBillingDecoder.encodeAllNet(mapOf(
|
|
||||||
"game_id" to game,
|
"game_id" to game,
|
||||||
"ver" to version,
|
"ver" to version,
|
||||||
"serial" to keychipShort,
|
"serial" to keychipShort,
|
||||||
|
@ -39,10 +38,10 @@ class AllNetClient(val dns: String, val keychip: String, val game: String, val v
|
||||||
"encode" to "UTF-8", "format_ver" to "3", "hops" to "1", "token" to "2864179931"
|
"encode" to "UTF-8", "format_ver" to "3", "hops" to "1", "token" to "2864179931"
|
||||||
)))
|
)))
|
||||||
.bodyString()
|
.bodyString()
|
||||||
.split("&")
|
?.split("&")
|
||||||
.map { it.split("=") }
|
?.map { it.split("=") }
|
||||||
.filter { it.size == 2 }
|
?.filter { it.size == 2 }
|
||||||
.associate { it[0] to it[1] }["uri"]
|
?.associate { it[0] to it[1] }?.get("uri")
|
||||||
?: throw Exception("PowerOn Failed: No game URL returned")
|
?: throw Exception("PowerOn Failed: No game URL returned")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ abstract class DataBroker(
|
||||||
inline fun <reified T> String.getNullable(key: String, data: JDict): T? = "$url/$this".request()
|
inline fun <reified T> String.getNullable(key: String, data: JDict): T? = "$url/$this".request()
|
||||||
.postZ(mapper.write(data))
|
.postZ(mapper.write(data))
|
||||||
.bodyMaybeZ()
|
.bodyMaybeZ()
|
||||||
.jsonMap()[key]
|
?.jsonMaybeMap()?.get(key)
|
||||||
?.let { mapper.convert<T>(it) }
|
?.let { mapper.convert<T>(it) }
|
||||||
?.also {
|
?.also {
|
||||||
if (it is List<*>) log("✅ $this: ${it.size}")
|
if (it is List<*>) log("✅ $this: ${it.size}")
|
||||||
|
@ -53,7 +53,7 @@ abstract class DataBroker(
|
||||||
"$url/UpsertUserAllApi".request().postZ(mapper.write(mapOf(
|
"$url/UpsertUserAllApi".request().postZ(mapper.write(mapOf(
|
||||||
"userId" to allNet.userId,
|
"userId" to allNet.userId,
|
||||||
"upsertUserAll" to data.jsonMap()
|
"upsertUserAll" to data.jsonMap()
|
||||||
))).bodyMaybeZ().also { log(it) }
|
))).bodyMaybeZ()?.also { log(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue