Skip to content

Commit 2bcc5ef

Browse files
SebastianAignerJSMonk
authored andcommitted
Adjust for Ktor 2.x APIs
1 parent 773e777 commit 2bcc5ef

File tree

3 files changed

+24
-19
lines changed

3 files changed

+24
-19
lines changed

src/jsMain/kotlin/Api.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
import io.ktor.http.*
22
import io.ktor.client.*
3+
import io.ktor.client.call.*
4+
import io.ktor.client.plugins.contentnegotiation.*
35
import io.ktor.client.request.*
4-
import io.ktor.client.features.json.JsonFeature
5-
import io.ktor.client.features.json.serializer.KotlinxSerializer
6+
import io.ktor.serialization.kotlinx.json.*
67

78
import kotlinx.browser.window
89

910
val endpoint = window.location.origin // only needed until https://github.com/ktorio/ktor/issues/1695 is resolved
1011

1112
val jsonClient = HttpClient {
12-
install(JsonFeature) { serializer = KotlinxSerializer() }
13+
install(ContentNegotiation) {
14+
json()
15+
}
1316
}
1417

1518
suspend fun getShoppingList(): List<ShoppingListItem> {
16-
return jsonClient.get(endpoint + ShoppingListItem.path)
19+
return jsonClient.get(endpoint + ShoppingListItem.path).body()
1720
}
1821

1922
suspend fun addShoppingListItem(shoppingListItem: ShoppingListItem) {
20-
jsonClient.post<Unit>(endpoint + ShoppingListItem.path) {
23+
jsonClient.post(endpoint + ShoppingListItem.path) {
2124
contentType(ContentType.Application.Json)
22-
body = shoppingListItem
25+
setBody(shoppingListItem)
2326
}
2427
}
2528

2629
suspend fun deleteShoppingListItem(shoppingListItem: ShoppingListItem) {
27-
jsonClient.delete<Unit>(endpoint + ShoppingListItem.path + "/${shoppingListItem.id}")
30+
jsonClient.delete(endpoint + ShoppingListItem.path + "/${shoppingListItem.id}")
2831
}

src/jsMain/kotlin/Main.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import react.dom.render
21
import kotlinx.browser.document
32
import react.create
3+
import react.dom.client.createRoot
44

55
fun main() {
66
val container = document.getElementById("root") ?: error("Couldn't find container!")
7-
render(App.create(), container)
7+
createRoot(container).render(App.create())
88
}

src/jvmMain/kotlin/Server.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
import io.ktor.application.*
2-
import io.ktor.features.*
31
import io.ktor.http.*
4-
import io.ktor.http.content.*
5-
import io.ktor.request.*
6-
import io.ktor.response.*
7-
import io.ktor.routing.*
8-
import io.ktor.serialization.*
92
import io.ktor.server.engine.*
103
import io.ktor.server.netty.*
114
import org.litote.kmongo.*
125
import org.litote.kmongo.coroutine.*
136
import com.mongodb.ConnectionString
7+
import io.ktor.server.application.*
8+
import io.ktor.server.http.content.*
9+
import io.ktor.server.plugins.compression.*
10+
import io.ktor.server.plugins.contentnegotiation.*
11+
import io.ktor.server.request.*
12+
import io.ktor.server.response.*
13+
import io.ktor.server.routing.*
14+
import io.ktor.serialization.kotlinx.json.*
15+
import io.ktor.server.plugins.cors.routing.*
1416
import org.litote.kmongo.reactivestreams.KMongo
1517

1618
val connectionString: ConnectionString? = System.getenv("MONGODB_URI")?.let {
@@ -28,9 +30,9 @@ fun main() {
2830
json()
2931
}
3032
install(CORS) {
31-
method(HttpMethod.Get)
32-
method(HttpMethod.Post)
33-
method(HttpMethod.Delete)
33+
allowMethod(HttpMethod.Get)
34+
allowMethod(HttpMethod.Post)
35+
allowMethod(HttpMethod.Delete)
3436
anyHost()
3537
}
3638
install(Compression) {

0 commit comments

Comments
 (0)