aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Jaros <rjaros@finn.pl>2020-02-09 00:02:38 +0100
committerRobert Jaros <rjaros@finn.pl>2020-02-09 00:02:38 +0100
commit321fadf3b8381b9d33cb6c5208d0bf6c4d7923f7 (patch)
tree1cb143c9756044d27c53302836d69980e1474450
parentf8ff7ea49d2154d249c79a8c9591614793213e9e (diff)
downloadkvision-321fadf3b8381b9d33cb6c5208d0bf6c4d7923f7.tar.gz
kvision-321fadf3b8381b9d33cb6c5208d0bf6c4d7923f7.tar.bz2
kvision-321fadf3b8381b9d33cb6c5208d0bf6c4d7923f7.zip
Simplify bindings definitions for remote components (select, typeahead)
-rw-r--r--kvision-modules/kvision-common-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt8
-rw-r--r--kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt11
-rw-r--r--kvision-modules/kvision-server-jooby/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt45
-rw-r--r--kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt46
-rw-r--r--kvision-modules/kvision-server-spring-boot/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt53
-rw-r--r--kvision-tools/kvision-compiler-plugin/src/main/kotlin/pl/treksoft/kvision/plugin/KVProcessor.kt7
6 files changed, 0 insertions, 170 deletions
diff --git a/kvision-modules/kvision-common-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-common-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
index 09239fdd..71c7d641 100644
--- a/kvision-modules/kvision-common-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
+++ b/kvision-modules/kvision-common-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
@@ -111,14 +111,6 @@ expect open class KVServiceManager<T : Any>(serviceClass: KClass<T>) {
)
/**
- * Binds a given function of the receiver as a select options source
- * @param function a function of the receiver
- */
- protected fun bindSelectRemote(
- function: suspend T.(String?, String?, String?) -> List<RemoteOption>
- )
-
- /**
* Binds a given function of the receiver as a tabulator component source
* @param function a function of the receiver
*/
diff --git a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
index c257645d..aaf63153 100644
--- a/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
+++ b/kvision-modules/kvision-remote/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
@@ -129,17 +129,6 @@ actual open class KVServiceManager<T : Any> actual constructor(serviceClass: KCl
}
/**
- * Binds a given function of the receiver as a select options source
- * @param function a function of the receiver
- */
- protected actual fun bindSelectRemote(
- function: suspend T.(String?, String?, String?) -> List<RemoteOption>
- ) {
- val routeDef = "route${this::class.simpleName}${counter++}"
- calls[function.toString().replace("\\s".toRegex(), "")] = Pair("/kv/$routeDef", HttpMethod.POST)
- }
-
- /**
* Binds a given function of the receiver as a tabulator component source
* @param function a function of the receiver
*/
diff --git a/kvision-modules/kvision-server-jooby/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-server-jooby/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
index 6cc2b73d..7bb7af06 100644
--- a/kvision-modules/kvision-server-jooby/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
+++ b/kvision-modules/kvision-server-jooby/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
@@ -446,51 +446,6 @@ actual open class KVServiceManager<T : Any> actual constructor(val serviceClass:
}
/**
- * Binds a given function of the receiver as a select options source
- * @param function a function of the receiver
- */
- @Suppress("TooGenericExceptionCaught")
- protected actual fun bindSelectRemote(
- function: suspend T.(String?, String?, String?) -> List<RemoteOption>
- ) {
- val routeDef = "route${this::class.simpleName}${counter++}"
- routes.add {
- call(HttpMethod.POST, "/kv/$routeDef") { req, res ->
- val jsonRpcRequest = req.body(JsonRpcRequest::class.java)
- @Suppress("MagicNumber")
- if (jsonRpcRequest.params.size == 3) {
- val param1 = getParameter<String?>(jsonRpcRequest.params[0])
- val param2 = getParameter<String?>(jsonRpcRequest.params[1])
- val param3 = getParameter<String?>(jsonRpcRequest.params[2])
- val injector = req.require(Injector::class.java)
- val service = injector.getInstance(serviceClass.java)
- GlobalScope.launch(start = CoroutineStart.UNDISPATCHED) {
- try {
- val result = function.invoke(service, param1, param2, param3)
- res.send(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- result = mapper.writeValueAsString(result)
- )
- )
- } catch (e: Exception) {
- if (!(e is ServiceException)) LOG.error(e.message, e)
- res.send(
- JsonRpcResponse(
- id = jsonRpcRequest.id, error = e.message ?: "Error",
- exceptionType = e.javaClass.canonicalName
- )
- )
- }
- }
- } else {
- res.send(JsonRpcResponse(id = jsonRpcRequest.id, error = "Invalid parameters"))
- }
- }.invoke(this)
- }
- }
-
- /**
* Binds a given function of the receiver as a tabulator component source
* @param function a function of the receiver
*/
diff --git a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
index 19bb8db4..d3fde5c7 100644
--- a/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
+++ b/kvision-modules/kvision-server-ktor/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
@@ -449,52 +449,6 @@ actual open class KVServiceManager<T : Any> actual constructor(val serviceClass:
}
/**
- * Binds a given function of the receiver as a select options source
- * @param function a function of the receiver
- */
- @Suppress("TooGenericExceptionCaught")
- protected actual fun bindSelectRemote(
- function: suspend T.(String?, String?, String?) -> List<RemoteOption>
- ) {
- val routeDef = "route${this::class.simpleName}${counter++}"
- addRoute(HttpMethod.POST, "/kv/$routeDef") {
- val service = call.injector.createChildInjector(DummyWsSessionModule()).getInstance(serviceClass.java)
- val jsonRpcRequest = call.receive<JsonRpcRequest>()
- @Suppress("MagicNumber")
- if (jsonRpcRequest.params.size == 3) {
- val param1 = getParameter<String?>(jsonRpcRequest.params[0])
- val param2 = getParameter<String?>(jsonRpcRequest.params[1])
- val param3 = getParameter<String?>(jsonRpcRequest.params[2])
- try {
- val result = function.invoke(service, param1, param2, param3)
- call.respond(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- result = mapper.writeValueAsString(result)
- )
- )
- } catch (e: Exception) {
- if (!(e is ServiceException)) LOG.error(e.message, e)
- call.respond(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- error = e.message ?: "Error",
- exceptionType = e.javaClass.canonicalName
- )
- )
- }
- } else {
- call.respond(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- error = "Invalid parameters"
- )
- )
- }
- }
- }
-
- /**
* Binds a given function of the receiver as a tabulator component source
* @param function a function of the receiver
*/
diff --git a/kvision-modules/kvision-server-spring-boot/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt b/kvision-modules/kvision-server-spring-boot/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
index 291a9481..05e009a4 100644
--- a/kvision-modules/kvision-server-spring-boot/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
+++ b/kvision-modules/kvision-server-spring-boot/src/main/kotlin/pl/treksoft/kvision/remote/KVServiceManager.kt
@@ -511,59 +511,6 @@ actual open class KVServiceManager<T : Any> actual constructor(val serviceClass:
}
/**
- * Binds a given function of the receiver as a select options source
- * @param function a function of the receiver
- */
- @Suppress("TooGenericExceptionCaught")
- protected actual fun bindSelectRemote(
- function: suspend T.(String?, String?, String?) -> List<RemoteOption>
- ) {
- val routeDef = "route${this::class.simpleName}${counter++}"
- addRoute(HttpMethod.POST, "/kv/$routeDef") { req, ctx ->
- val service = ctx.getBean(serviceClass.java)
- initializeService(service, req)
- val jsonRpcRequest = req.awaitBody<JsonRpcRequest>()
- @Suppress("MagicNumber")
- if (jsonRpcRequest.params.size == 3) {
- val param1 = getParameter<String?>(jsonRpcRequest.params[0])
- val param2 = getParameter<String?>(jsonRpcRequest.params[1])
- val param3 = getParameter<String?>(jsonRpcRequest.params[2])
- try {
- val result = function.invoke(service, param1, param2, param3)
- ServerResponse.ok().json().bodyValueAndAwait(
- mapper.writeValueAsString(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- result = mapper.writeValueAsString(result)
- )
- )
- )
- } catch (e: Exception) {
- if (!(e is ServiceException)) LOG.error(e.message, e)
- ServerResponse.ok().json().bodyValueAndAwait(
- mapper.writeValueAsString(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- error = e.message ?: "Error",
- exceptionType = e.javaClass.canonicalName
- )
- )
- )
- }
- } else {
- ServerResponse.ok().json().bodyValueAndAwait(
- mapper.writeValueAsString(
- JsonRpcResponse(
- id = jsonRpcRequest.id,
- error = "Invalid parameters"
- )
- )
- )
- }
- }
- }
-
- /**
* Binds a given function of the receiver as a tabulator component source
* @param function a function of the receiver
*/
diff --git a/kvision-tools/kvision-compiler-plugin/src/main/kotlin/pl/treksoft/kvision/plugin/KVProcessor.kt b/kvision-tools/kvision-compiler-plugin/src/main/kotlin/pl/treksoft/kvision/plugin/KVProcessor.kt
index e09c9021..31ed4ffd 100644
--- a/kvision-tools/kvision-compiler-plugin/src/main/kotlin/pl/treksoft/kvision/plugin/KVProcessor.kt
+++ b/kvision-tools/kvision-compiler-plugin/src/main/kotlin/pl/treksoft/kvision/plugin/KVProcessor.kt
@@ -98,8 +98,6 @@ class KVProcessor : AbstractProcessor() {
when {
it.returnType.toString().startsWith("RemoteData") ->
appendln(" bindTabulatorRemote($iName::${it.name})")
- it.returnType.toString() == "List<RemoteOption>" ->
- appendln(" bindSelectRemote($iName::${it.name})")
else -> appendln(" bind($iName::${it.name})")
}
}
@@ -149,11 +147,6 @@ class KVProcessor : AbstractProcessor() {
params
)}) = ${it.returnType.toString()}()"
)
- it.returnType.toString() == "List<RemoteOption>" -> appendln(
- " override suspend fun $name(${getParameterList(
- params
- )}) = emptyList<RemoteOption>()"
- )
else -> appendln(
" override suspend fun $name(${getParameterList(params)}) = call($iName::$name, ${getParameterNames(
params