Nicolai
03/29/2022, 6:41 AMdata class Action(
val actionGuid: String,
val actionType: String,
val allowClose: Boolean,
val body: String,
val deepLink: String,
val deepLinkId: String,
val deepLinkSubId: String,
val deepLinkText: String,
val fuxiActionVersion: Int,
val imageUrl: String,
val isAutoClose: Boolean,
val isDeleteFromCache: Boolean,
val isHidden: Boolean,
val isShowClose: Boolean,
val pageId: String,
val questions: List<Any>,
val submitText: String,
val submitUrl: String,
val surveyId: String,
val theme: String,
val title: String,
val validFromUtc: String,
val validToUtc: String
)
and another data class
@kotlinx.parcelize.Parcelize
data class FuxiNotification(
val actionGuid: String,
val actionType: String,
val allowClose: Boolean,
val body: String,
val deepLink: String,
val deepLinkId: String,
val deepLinkSubId: String,
val deepLinkText: String,
val fuxiActionVersion: Int,
val imageUrl: String,
val isAutoClose: Boolean,
val isDeleteFromCache: Boolean,
val isHidden: Boolean,
val isShowClose: Boolean,
val pageId: String,
val theme: String,
val title: String,
val validFromUtc: String,
val validToUtc: String
) : Parcelable
What would be the way to do this in a smart way so I can map Action to FuxiNotification easily? 🙏Dorian
03/29/2022, 7:38 AMMichael de Kaste
03/29/2022, 8:18 AMclass Action(val map: Map<String, Any?>){
val actionGuid: String by map
...
val validToUtc: String by map
}
class FuxiNotification(val map: Map<String, Any?>){
val actionGuid: String by map
...
val validToUtc: String by map
}
fun main(){
val action = Action(mapOf("actionGuid" to "a value"))
val fuxi = FuxiNotification(action.map)
assertSame(action.actionGuid, fuxi.actionGuid)
//exception
println(action.body)
}
Nicolai
03/29/2022, 12:22 PM