vgrechka
12/22/2016, 1:00 PMsealed class ZimbabweResponse<T> {
class Hunky<T>(val meat: T): ZimbabweResponse<T>()
class Shitty<T>(val error: String, val fieldErrors: Iterable<FieldError>): ZimbabweResponse<T>()
}
i have a function that makes remote call and returns either null
, if it was ok, or error, if not so:
override fun load(): Promise<ZimbabweResponse.Shitty<*>?> = async {
val filesTabURLQuery = typeSafeURLQuery(world){FilesTabURLQuery()}
ordering = relaxedStringToEnum(filesTabURLQuery.ordering, Ordering.values(), default = Ordering.DESC)
filter = relaxedStringToEnum(filesTabURLQuery.filter, CustomerFileFilter.values(), default = CustomerFileFilter.ALL)
search = (filesTabURLQuery.search ?: "").trim()
val res = await(requestChunk(null))
when (res) {
is ZimbabweResponse.Shitty -> return@async res
is ZimbabweResponse.Hunky -> {
meat = res.meat
stripContent = StripContent()
plusFormContainer = Control2.from {kdiv{o->
o- ebafPlus.renderForm()
}}
content = ToReactElementable.from {kdiv{o->
o- plusFormContainer
o- renderItems(meat, noItemsMessage = true)
}}
return@async null
}
}
}