webapi: use @Serializable to generate the serializer() method
authorDa Risk <da_risk@geekorum.com>
Fri, 22 Nov 2019 16:37:15 -0800
changeset 565 22a9c6bb238d
parent 564 28fc9ac07c2e
child 566 5f481ad9fcc6
webapi: use @Serializable to generate the serializer() method
webapi/src/main/kotlin/model/Articles.kt
webapi/src/main/kotlin/model/BaseProtocol.kt
webapi/src/main/kotlin/model/Config.kt
webapi/src/main/kotlin/model/Login.kt
webapi/src/main/kotlin/model/SubscribeToFeed.kt
webapi/src/main/kotlin/model/Version.kt
--- a/webapi/src/main/kotlin/model/Articles.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/Articles.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -112,12 +112,12 @@
  * The response of an update article request.
  */
 @Keep
-//@Serializable
+@Serializable(UpdateArticleResponsePayload.OwnSerializer::class)
 data class UpdateArticleResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
     override val status: Int = 0,
-    override val content: UpdateArticleResponsePayload.Content
+    override val content: Content
 ) : ResponsePayload<UpdateArticleResponsePayload.Content>() {
 
     @Transient
@@ -130,14 +130,8 @@
         override var error: Error? = null
     ): BaseContent()
 
-  companion object {
-        fun serializer(): KSerializer<UpdateArticleResponsePayload> {
-            return UpdateArticleResponsePayloadSerializer
-        }
-    }
-
     @Serializer(UpdateArticleResponsePayload::class)
-    object UpdateArticleResponsePayloadSerializer : KSerializer<UpdateArticleResponsePayload> {
+    internal object OwnSerializer : KSerializer<UpdateArticleResponsePayload> {
         override fun serialize(encoder: Encoder, obj: UpdateArticleResponsePayload) {
             TODO("not implemented")
         }
--- a/webapi/src/main/kotlin/model/BaseProtocol.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/BaseProtocol.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -87,6 +87,7 @@
 
 }
 
+@Serializable(EnumSerializer::class)
 enum class Error {
     NO_ERROR,
     API_DISABLED,
@@ -125,22 +126,16 @@
  *
  * @param <T> the type of element in the list.
  */
-//@Serializable
+@Serializable(ListContent.OwnSerializer::class)
 data class ListContent<T>(
     @Transient
     val list: List<T> = emptyList(),
     override var error: Error? = null
 ) : BaseContent() {
 
-    companion object {
-        fun <E> serializer(typeSerializer: KSerializer<E>): KSerializer<ListContent<E>> {
-            return ListContentSerializer(typeSerializer)
-        }
-    }
-
     // Workaround for kapt bug
     @Serializer(ListContent::class)
-    class ListContentSerializer<E>(
+    internal class OwnSerializer<E>(
         val contentSerializer: KSerializer<E>
     ) : KSerializer<ListContent<E>> {
 
@@ -192,7 +187,7 @@
  * @param <T> the type of element in the list.
  */
 @Keep
-//@Serializable
+@Serializable(ListResponsePayload.OwnSerializer::class)
 data class ListResponsePayload<T>(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -204,15 +199,8 @@
     val result: List<T>
         get() = content.list
 
-    companion object {
-        fun <E> serializer(typeSerializer: KSerializer<E>): KSerializer<ListResponsePayload<E>> {
-            return ListResponsePayloadSerializer(typeSerializer)
-        }
-    }
-
-    // Workaround for kapt bug
     @Serializer(ListResponsePayload::class)
-    class ListResponsePayloadSerializer<E>(
+    internal class OwnSerializer<E>(
         val contentSerializer: KSerializer<E>
     ) : KSerializer<ListResponsePayload<E>> {
 
--- a/webapi/src/main/kotlin/model/Config.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/Config.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -42,6 +42,7 @@
     override val operation = "getConfig"
 }
 
+@Serializable(GetConfigResponsePayload.OwnSerializer::class)
 data class GetConfigResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -75,15 +76,8 @@
 
     ) : BaseContent()
 
-    companion object {
-        fun serializer(): KSerializer<GetConfigResponsePayload> {
-            return GetConfigResponsePayloadSerializer
-        }
-    }
-
-
     @Serializer(GetConfigResponsePayload::class)
-    object GetConfigResponsePayloadSerializer : KSerializer<GetConfigResponsePayload> {
+    internal object OwnSerializer : KSerializer<GetConfigResponsePayload> {
         override fun serialize(encoder: Encoder, obj: GetConfigResponsePayload) {
             TODO("not implemented")
         }
--- a/webapi/src/main/kotlin/model/Login.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/Login.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -51,7 +51,7 @@
  * The response of a Login request.
  */
 @Keep
-//@Serializable
+@Serializable(LoginResponsePayload.OwnSerializer::class)
 data class LoginResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -79,15 +79,8 @@
 
     ) : BaseContent()
 
-// Workaround for kapt bug
-    companion object {
-        fun serializer(): KSerializer<LoginResponsePayload> {
-            return LoginResponsePayloadSerializer
-        }
-    }
-
     @Serializer(LoginResponsePayload::class)
-    object LoginResponsePayloadSerializer : KSerializer<LoginResponsePayload> {
+    internal object OwnSerializer : KSerializer<LoginResponsePayload> {
         override fun serialize(encoder: Encoder, obj: LoginResponsePayload) {
             TODO("not implemented")
         }
--- a/webapi/src/main/kotlin/model/SubscribeToFeed.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/SubscribeToFeed.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -74,6 +74,7 @@
  * Response payload of subscribe to feed request
  */
 @Keep
+@Serializable(SubscribeToFeedResponsePayload.OwnSerializer::class)
 data class SubscribeToFeedResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -87,14 +88,8 @@
     val success: Boolean
         get() = (resultCode == SubscribeResultCode.FEED_ALREADY_EXIST || resultCode == SubscribeResultCode.FEED_ADDED)
 
-    companion object {
-        fun serializer(): KSerializer<SubscribeToFeedResponsePayload> {
-            return SubscribeToFeedResponsePayloadSerializer
-        }
-    }
-
     @Serializer(SubscribeToFeedResponsePayload::class)
-    object SubscribeToFeedResponsePayloadSerializer : KSerializer<SubscribeToFeedResponsePayload> {
+    object OwnSerializer : KSerializer<SubscribeToFeedResponsePayload> {
         override fun serialize(encoder: Encoder, obj: SubscribeToFeedResponsePayload) {
             TODO("not implemented")
         }
@@ -169,6 +164,7 @@
  * Response payload of unsubscribe from feed request
  */
 @Keep
+@Serializable(UnsubscribeFeedResponsePayload.OwnSerializer::class)
 data class UnsubscribeFeedResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -176,14 +172,8 @@
     override val content: Content
 ) : ResponsePayload<UnsubscribeFeedResponsePayload.Content>() {
 
-    companion object {
-        fun serializer(): KSerializer<UnsubscribeFeedResponsePayload> {
-            return UnsubscribeFeedResponsePayloadSerializer
-        }
-    }
-
     @Serializer(UnsubscribeFeedResponsePayload::class)
-    object UnsubscribeFeedResponsePayloadSerializer : KSerializer<UnsubscribeFeedResponsePayload> {
+    internal object OwnSerializer : KSerializer<UnsubscribeFeedResponsePayload> {
         override fun serialize(encoder: Encoder, obj: UnsubscribeFeedResponsePayload) {
             TODO("not implemented")
         }
--- a/webapi/src/main/kotlin/model/Version.kt	Fri Nov 22 16:20:25 2019 -0800
+++ b/webapi/src/main/kotlin/model/Version.kt	Fri Nov 22 16:37:15 2019 -0800
@@ -42,6 +42,7 @@
     override val operation = "getVersion"
 }
 
+@Serializable(GetVersionResponsePayload.OwnSerializer::class)
 data class GetVersionResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -60,15 +61,8 @@
 
     ) : BaseContent()
 
-    companion object {
-        fun serializer(): KSerializer<GetVersionResponsePayload> {
-            return GetVersionResponsePayloadSerializer
-        }
-    }
-
-
     @Serializer(GetVersionResponsePayload::class)
-    object GetVersionResponsePayloadSerializer : KSerializer<GetVersionResponsePayload> {
+    internal object OwnSerializer : KSerializer<GetVersionResponsePayload> {
         override fun serialize(encoder: Encoder, obj: GetVersionResponsePayload) {
             TODO("not implemented")
         }
@@ -112,7 +106,7 @@
     override val operation = "getApiLevel"
 }
 
-
+@Serializable(GetApiLevelResponsePayload.OwnSerializer::class)
 data class GetApiLevelResponsePayload(
     @SerialName("seq")
     override val sequence: Int? = null,
@@ -131,15 +125,8 @@
 
     ) : BaseContent()
 
-    companion object {
-        fun serializer(): KSerializer<GetApiLevelResponsePayload> {
-            return GetApiLevelResponsePayloadSerializer
-        }
-    }
-
-
     @Serializer(GetApiLevelResponsePayload::class)
-    object GetApiLevelResponsePayloadSerializer : KSerializer<GetApiLevelResponsePayload> {
+    internal object OwnSerializer : KSerializer<GetApiLevelResponsePayload> {
         override fun serialize(encoder: Encoder, obj: GetApiLevelResponsePayload) {
             TODO("not implemented")
         }