mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-13 19:37:00 +05:30
feat(model): add more fields to Comment
model
This commit is contained in:
parent
21b5f3e4f3
commit
84c0abbf58
2 changed files with 31 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import dev.msfjarvis.claw.serialization.JavaInstantSerializer
|
||||
import java.time.temporal.TemporalAccessor
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
|
@ -7,6 +9,13 @@ import kotlinx.serialization.Serializable
|
|||
class Comment(
|
||||
val comment: String,
|
||||
val url: String,
|
||||
val score: Int,
|
||||
@Serializable(with = JavaInstantSerializer::class)
|
||||
@SerialName("created_at")
|
||||
val createdAt: TemporalAccessor,
|
||||
@Serializable(with = JavaInstantSerializer::class)
|
||||
@SerialName("updated_at")
|
||||
val updatedAt: TemporalAccessor,
|
||||
@SerialName("indent_level") val indentLevel: Int,
|
||||
@SerialName("commenting_user") val user: User,
|
||||
)
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package dev.msfjarvis.claw.serialization
|
||||
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.temporal.TemporalAccessor
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
class JavaInstantSerializer : KSerializer<TemporalAccessor> {
|
||||
override val descriptor: SerialDescriptor =
|
||||
PrimitiveSerialDescriptor("Instant", PrimitiveKind.STRING)
|
||||
|
||||
override fun deserialize(decoder: Decoder): TemporalAccessor {
|
||||
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(decoder.decodeString())
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: TemporalAccessor) =
|
||||
encoder.encodeString(value.toString())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue