mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 10:37:05 +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
|
package dev.msfjarvis.claw.model
|
||||||
|
|
||||||
|
import dev.msfjarvis.claw.serialization.JavaInstantSerializer
|
||||||
|
import java.time.temporal.TemporalAccessor
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@ -7,6 +9,13 @@ import kotlinx.serialization.Serializable
|
||||||
class Comment(
|
class Comment(
|
||||||
val comment: String,
|
val comment: String,
|
||||||
val url: 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("indent_level") val indentLevel: Int,
|
||||||
@SerialName("commenting_user") val user: User,
|
@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