Skip to content

Commit d467ba5

Browse files
Add some missing json extensions
1 parent 11eeb6e commit d467ba5

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/main/kotlin/org/platestack/api/json/json-extensions.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,26 @@
1818

1919
package org.platestack.api.json
2020

21+
import com.github.salomonbrys.kotson.addProperty
2122
import com.google.gson.JsonElement
23+
import com.google.gson.JsonObject
2224
import org.platestack.api.message.Message
2325
import org.platestack.api.message.Text
2426

2527
fun JsonElement.getAsMessage() = (this as? JsonPlate ?: throw UnsupportedOperationException(javaClass.simpleName)).message
2628
fun JsonElement.getAsText() = (this as? JsonPlate ?: throw UnsupportedOperationException(javaClass.simpleName)).text
29+
2730
val JsonElement.message get() = getAsMessage()
31+
val JsonElement?.nullMessage get() = this?.takeIf { !isJsonNull }?.message
32+
2833
val JsonElement.text get() = getAsText()
34+
val JsonElement?.nullText get() = this?.takeIf { !isJsonNull }?.text
35+
36+
fun JsonObject.addProperty(property: String, value: Message) = addProperty(property, JsonMessage(value))
37+
fun JsonObject.addProperty(property: String, value: Text) = addProperty(property, JsonText(value))
38+
39+
fun JsonObject.addPropertyIfNotNull(property: String, value: Message?) = value?.let { addProperty(property, it) }
40+
fun JsonObject.addPropertyIfNotNull(property: String, value: Text?) = value?.let { addProperty(property, it) }
2941

3042
// TODO Implement
3143
interface JsonPlate {

0 commit comments

Comments
 (0)