add crud repo server and change a lot of different things

This commit is contained in:
2020-08-25 15:55:47 +06:00
parent 14d6915282
commit b94417b77d
16 changed files with 339 additions and 77 deletions
core/ktor
client
src
commonMain
kotlin
com
insanusmokrassar
server
src
main
kotlin
com
insanusmokrassar
ktor
client
src
commonMain
kotlin
com
insanusmokrassar
postssystem
server
src
jvmMain
kotlin
com
insanusmokrassar
tests
src
test
kotlin
com
insanusmokrassar
postssystem
settings.gradle
utils/repos
common
src
commonMain
kotlin
com
insanusmokrassar
postssystem
exposed
src
main
kotlin
com
insanusmokrassar
postssystem
ktor
client
src
commonMain
kotlin
com
insanusmokrassar
postssystem
utils
server
build.gradle
src
jvmMain
kotlin

@ -1,12 +1,15 @@
package com.insanusmokrassar.postssystem.ktor.server
import com.insanusmokrassar.postssystem.ktor.CorrectCloseException
import com.insanusmokrassar.postssystem.ktor.standardKtorSerialFormat
import com.insanusmokrassar.postssystem.utils.common.safely
import io.ktor.http.cio.websocket.*
import io.ktor.routing.Route
import io.ktor.websocket.webSocket
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerializationStrategy
private suspend fun DefaultWebSocketSession.checkReceivedAndCloseIfExists() {
if (incoming.poll() != null) {
@ -29,3 +32,14 @@ fun <T> Route.includeWebsocketHandling(
}
}
}
fun <T> Route.includeWebsocketHandling(
suburl: String,
flow: Flow<T>,
serializer: SerializationStrategy<T>
) = includeWebsocketHandling(
suburl,
flow
) {
standardKtorSerialFormat.encodeToByteArray(serializer, it)
}

@ -30,6 +30,14 @@ suspend fun ApplicationCall.getParameterOrSendError(
field: String
) = parameters[field].also {
if (it == null) {
respond(HttpStatusCode.BadRequest, "request must contains $field")
respond(HttpStatusCode.BadRequest, "Request must contains $field")
}
}
suspend fun ApplicationCall.getQueryParameterOrSendError(
field: String
) = request.queryParameters[field].also {
if (it == null) {
respond(HttpStatusCode.BadRequest, "Request query parametersmust contains $field")
}
}