mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 21:07:04 +05:30
refactor(model): use Konvert to automatically generate mappings
This commit is contained in:
parent
d4672ae8bd
commit
25382acf0e
8 changed files with 57 additions and 47 deletions
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue