From bc1207e6d8a8d3e253aaa68fbe5d4c54f4c69b0a Mon Sep 17 00:00:00 2001 From: luevard <99143550+saucepommefrite@users.noreply.github.com> Date: Mon, 15 Jan 2024 13:34:26 +0100 Subject: [PATCH] :sparkles: Local Database link --- Sources/src/main/kotlin/allin/model/Bet.kt | 15 +++-------- .../src/main/kotlin/allin/model/BetAction.kt | 4 +-- Sources/src/main/kotlin/allin/model/User.kt | 4 +-- .../kotlin/allin/serializer/DateSerializer.kt | 26 +++++++++---------- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/Sources/src/main/kotlin/allin/model/Bet.kt b/Sources/src/main/kotlin/allin/model/Bet.kt index 5d4bc13..c99b923 100644 --- a/Sources/src/main/kotlin/allin/model/Bet.kt +++ b/Sources/src/main/kotlin/allin/model/Bet.kt @@ -1,19 +1,10 @@ package allin.model -import allin.dto.UserDTOWithToken -import allin.serializer.DateSerializer +import allin.serializer.ZonedDateTimeSerializer import kotlinx.serialization.Serializable import java.util.* @Serializable -data class Bet(val id: Int, val theme: String, val sentenceBet: String, @Serializable(DateSerializer::class) val endRegistration: Date, @Serializable(DateSerializer::class) var endBet : Date, var isPrivate : Boolean, var response : MutableList, val createdBy : String) - -@Serializable -data class UpdatedBetData(val id: Int,@Serializable(DateSerializer::class) val endBet: Date, val isPrivate: Boolean, val response: MutableList) - +data class Bet(val id: Int, val theme: String, val sentenceBet: String, @Serializable(ZonedDateTimeSerializer::class) val endRegistration: Date, @Serializable(ZonedDateTimeSerializer::class) var endBet : Date, var isPrivate : Boolean, var response : MutableList, var createdBy : String) @Serializable -data class BetWithoutId(val theme: String, val sentenceBet: String, @Serializable(DateSerializer::class) val endRegistration: Date, @Serializable(DateSerializer::class) var endBet : Date, var isPrivate : Boolean, var response : MutableList, val createdBy : String) - -fun convertBetWithoutIdToBet(betWithoutId: BetWithoutId,id : Int, username : String): Bet { - return Bet(id,betWithoutId.theme,betWithoutId.sentenceBet,betWithoutId.endRegistration, betWithoutId.endBet, betWithoutId.isPrivate, betWithoutId.response, username) -} +data class UpdatedBetData(val id: Int,@Serializable(ZonedDateTimeSerializer::class) val endBet: Date, val isPrivate: Boolean, val response: MutableList) \ No newline at end of file diff --git a/Sources/src/main/kotlin/allin/model/BetAction.kt b/Sources/src/main/kotlin/allin/model/BetAction.kt index f830e2c..2f2298b 100644 --- a/Sources/src/main/kotlin/allin/model/BetAction.kt +++ b/Sources/src/main/kotlin/allin/model/BetAction.kt @@ -1,5 +1,5 @@ package allin.model -import allin.dto.UserDTOWithToken +import allin.dto.UserDTO data class BetAction(val id:Int, val coins: Int, val user: String, val bet: Int) -data class BetActionCompleted(val id:Int, val coins: Int, val user: UserDTOWithToken, val bet: Bet) +data class BetActionCompleted(val id:Int, val coins: Int, val user: UserDTO, val bet: Bet) diff --git a/Sources/src/main/kotlin/allin/model/User.kt b/Sources/src/main/kotlin/allin/model/User.kt index 3159bc9..4f3f1f0 100644 --- a/Sources/src/main/kotlin/allin/model/User.kt +++ b/Sources/src/main/kotlin/allin/model/User.kt @@ -1,10 +1,8 @@ package allin.model -import allin.dto.UserDTO -import allin.routing.users import kotlinx.serialization.Serializable @Serializable -data class User(val username: String, val email: String, var password: String, var nbCoins: Int = 1000, var token: String? = null) +data class User(val username: String, val email: String, var password: String, var nbCoins: Double = 1000.0, var token: String? = null) @Serializable data class CheckUser(val login: String,val password: String) diff --git a/Sources/src/main/kotlin/allin/serializer/DateSerializer.kt b/Sources/src/main/kotlin/allin/serializer/DateSerializer.kt index 6002c28..dc84760 100644 --- a/Sources/src/main/kotlin/allin/serializer/DateSerializer.kt +++ b/Sources/src/main/kotlin/allin/serializer/DateSerializer.kt @@ -6,22 +6,22 @@ import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder -import java.text.SimpleDateFormat -import java.util.* +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter -@Serializer(Date::class) -class DateSerializer : KSerializer { - override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Date", PrimitiveKind.STRING) +@Serializer(ZonedDateTime::class) +object ZonedDateTimeSerializer : KSerializer { + private val formatter: DateTimeFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME - val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.FRANCE) + override val descriptor: SerialDescriptor = + PrimitiveSerialDescriptor("ZonedDateTime", PrimitiveKind.STRING) - override fun deserialize(decoder: Decoder): Date { - val dateString = decoder.decodeString() - return formatter.parse(dateString) + override fun serialize(encoder: Encoder, value: ZonedDateTime) { + encoder.encodeString(formatter.format(value)) } - override fun serialize(encoder: Encoder, value: Date) { - val dateString = formatter.format(value) - encoder.encodeString(dateString) + override fun deserialize(decoder: Decoder): ZonedDateTime { + val dateString = decoder.decodeString() + return ZonedDateTime.parse(dateString, formatter) } -} \ No newline at end of file +}