refactor(model): use Konvert to automatically generate mappings

This commit is contained in:
Harsh Shandilya 2023-09-09 13:31:19 +05:30
parent d4672ae8bd
commit 25382acf0e
No known key found for this signature in database
8 changed files with 57 additions and 47 deletions

View file

@ -5,9 +5,19 @@
* https://opensource.org/licenses/MIT.
*/
plugins {
id("dev.msfjarvis.claw.kotlin-jvm")
id("dev.msfjarvis.claw.android-library")
id("dev.msfjarvis.claw.kotlin-android")
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.poko)
alias(libs.plugins.ksp)
}
dependencies { implementation(libs.kotlinx.serialization.core) }
android { namespace = "dev.msfjarvis.claw.model" }
dependencies {
implementation(libs.kotlinx.serialization.core)
implementation(libs.konvert.api)
implementation(projects.database)
ksp(libs.konvert.processor)
}

View file

@ -9,11 +9,28 @@
package dev.msfjarvis.claw.model
import dev.drewhamilton.poko.Poko
import dev.msfjarvis.claw.database.local.SavedPost
import io.mcarle.konvert.api.KonvertTo
import io.mcarle.konvert.api.Mapping
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
@Poko
@KonvertTo(
value = SavedPost::class,
mappings =
[
Mapping(
target = "submitterName",
expression = "it.submitter.username",
),
Mapping(
target = "submitterAvatarUrl",
expression = "it.submitter.avatarUrl",
),
],
)
class LobstersPost(
val shortId: String,
val createdAt: String,

View file

@ -9,11 +9,28 @@
package dev.msfjarvis.claw.model
import dev.drewhamilton.poko.Poko
import dev.msfjarvis.claw.database.local.SavedPost
import io.mcarle.konvert.api.KonvertTo
import io.mcarle.konvert.api.Mapping
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
@Poko
@KonvertTo(
value = SavedPost::class,
mappings =
[
Mapping(
target = "submitterName",
expression = "it.submitter.username",
),
Mapping(
target = "submitterAvatarUrl",
expression = "it.submitter.avatarUrl",
),
],
)
class LobstersPostDetails(
val shortId: String,
val createdAt: String,