aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2020-05-10 02:47:10 +0200
committerRobert Jaros <rjaros@finn.pl>2020-05-10 02:47:10 +0200
commit3244e5aa98977fa983526b1c80bcb03af3aab715 (patch)
tree029dd0067fa041e3ac4538347786ea9ddb4c60c5
parent6b90497dee8a4ff70615121f2ec8d0542f69364c (diff)
downloadkvision-3244e5aa98977fa983526b1c80bcb03af3aab715.tar.gz
kvision-3244e5aa98977fa983526b1c80bcb03af3aab715.tar.bz2
kvision-3244e5aa98977fa983526b1c80bcb03af3aab715.zip
Fix RestClient data serialization.
-rw-r--r--src/main/kotlin/pl/treksoft/kvision/rest/RestClient.kt13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/kotlin/pl/treksoft/kvision/rest/RestClient.kt b/src/main/kotlin/pl/treksoft/kvision/rest/RestClient.kt
index f7091f96..e55249cc 100644
--- a/src/main/kotlin/pl/treksoft/kvision/rest/RestClient.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/rest/RestClient.kt
@@ -32,6 +32,7 @@ import pl.treksoft.jquery.JQueryXHR
import pl.treksoft.jquery.jQuery
import pl.treksoft.kvision.types.DateSerializer
import pl.treksoft.kvision.utils.JSON
+import pl.treksoft.kvision.utils.JSON.toObj
import pl.treksoft.kvision.utils.obj
import kotlin.js.Date
import kotlin.js.Promise
@@ -131,7 +132,8 @@ open class RestClient {
contentType: String = "application/json",
beforeSend: ((JQueryXHR, JQueryAjaxSettings) -> Boolean)? = null
): Promise<dynamic> {
- return remoteCall(url, JSON.plain.stringify(serializer, data), method, contentType, beforeSend)
+ val data = if (method == HttpMethod.GET) data.toObj(serializer) else JSON.plain.stringify(serializer, data)
+ return remoteCall(url, data, method, contentType, beforeSend)
}
@@ -157,9 +159,10 @@ open class RestClient {
beforeSend: ((JQueryXHR, JQueryAjaxSettings) -> Boolean)? = null,
transform: ((dynamic) -> dynamic)? = null
): Promise<T> {
+ val data = if (method == HttpMethod.GET) data.toObj(serializer) else JSON.plain.stringify(serializer, data)
return remoteCall(
url,
- JSON.plain.stringify(serializer, data),
+ data,
method,
contentType,
beforeSend
@@ -419,7 +422,8 @@ open class RestClient {
contentType: String = "application/json",
beforeSend: ((JQueryXHR, JQueryAjaxSettings) -> Boolean)? = null
): Promise<Response<dynamic>> {
- return remoteRequest(url, JSON.plain.stringify(serializer, data), method, contentType, beforeSend)
+ val data = if (method == HttpMethod.GET) data.toObj(serializer) else JSON.plain.stringify(serializer, data)
+ return remoteRequest(url, data, method, contentType, beforeSend)
}
@@ -445,9 +449,10 @@ open class RestClient {
beforeSend: ((JQueryXHR, JQueryAjaxSettings) -> Boolean)? = null,
transform: ((dynamic) -> dynamic)? = null
): Promise<Response<T>> {
+ val data = if (method == HttpMethod.GET) data.toObj(serializer) else JSON.plain.stringify(serializer, data)
return remoteRequest(
url,
- JSON.plain.stringify(serializer, data),
+ data,
method,
contentType,
beforeSend