diff options
2 files changed, 11 insertions, 5 deletions
diff --git a/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/CallAgent.kt b/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/CallAgent.kt index 6c1e629c..3d865f04 100644 --- a/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/CallAgent.kt +++ b/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/CallAgent.kt @@ -42,7 +42,7 @@ const val HTTP_UNAUTHORIZED = 401 open class CallAgent { private val kvUrlPrefix = window["kv_remote_url_prefix"] - private val urlPrefix: String = if (kvUrlPrefix != undefined) kvUrlPrefix else "" + private val urlPrefix: String = if (kvUrlPrefix != undefined) "$kvUrlPrefix/" else "" private var counter = 1 /** @@ -66,7 +66,7 @@ open class CallAgent { JSON.plain.stringify(jsonRpcRequest) } return Promise { resolve, reject -> - jQuery.ajax(urlPrefix + url, obj { + jQuery.ajax(urlPrefix + url.drop(1), obj { this.contentType = "application/json" this.data = jsonData this.method = method.name @@ -125,7 +125,7 @@ open class CallAgent { beforeSend: ((JQueryXHR, JQueryAjaxSettings) -> Boolean)? = null ): Promise<dynamic> { return Promise { resolve, reject -> - jQuery.ajax(urlPrefix + url, obj { + jQuery.ajax(urlPrefix + url.drop(1), obj { this.contentType = if (contentType != "multipart/form-data") contentType else false this.data = data this.method = method.name diff --git a/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt b/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt index 24cea176..8836c7f1 100644 --- a/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt +++ b/kvision-modules/kvision-common-remote/src/jsMain/kotlin/pl/treksoft/kvision/remote/KVRemoteAgent.kt @@ -33,6 +33,8 @@ import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.builtins.list import kotlinx.serialization.serializer import kotlinx.serialization.stringify +import org.w3c.dom.get +import kotlin.browser.window import kotlin.reflect.KClass /** @@ -456,6 +458,8 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceMgr<T>) : noinline function: suspend T.(ReceiveChannel<PAR1>, SendChannel<PAR2>) -> Unit, noinline handler: suspend (SendChannel<PAR1>, ReceiveChannel<PAR2>) -> Unit ) { + val kvUrlPrefix = window["kv_remote_url_prefix"] + val urlPrefix: String = if (kvUrlPrefix != undefined) "$kvUrlPrefix/" else "" val (url, _) = serviceManager.getCalls()[function.toString().replace("\\s".toRegex(), "")] ?: throw IllegalStateException("Function not specified!") @@ -464,7 +468,7 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceMgr<T>) : val responseChannel = Channel<PAR2>() try { coroutineScope { - socket.connect(getWebSocketUrl(url)) + socket.connect(getWebSocketUrl(urlPrefix + url.drop(1))) lateinit var responseJob: Job lateinit var handlerJob: Job val requestJob = launch { @@ -532,6 +536,8 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceMgr<T>) : noinline function: suspend T.(ReceiveChannel<PAR1>, SendChannel<List<PAR2>>) -> Unit, noinline handler: suspend (SendChannel<PAR1>, ReceiveChannel<List<PAR2>>) -> Unit ) { + val kvUrlPrefix = window["kv_remote_url_prefix"] + val urlPrefix: String = if (kvUrlPrefix != undefined) "$kvUrlPrefix/" else "" val (url, _) = serviceManager.getCalls()[function.toString().replace("\\s".toRegex(), "")] ?: throw IllegalStateException("Function not specified!") @@ -540,7 +546,7 @@ open class KVRemoteAgent<T : Any>(val serviceManager: KVServiceMgr<T>) : val responseChannel = Channel<List<PAR2>>() try { coroutineScope { - socket.connect(getWebSocketUrl(url)) + socket.connect(getWebSocketUrl(urlPrefix + url.drop(1))) lateinit var responseJob: Job lateinit var handlerJob: Job val requestJob = launch { |