is it possible to create a lens to read a request ...
# http4k
p
is it possible to create a lens to read a request body into a sealed class? so the json might look like
Copy code
[
  {
    "id": "001",
    "status": "SUCCESS"
  },
  {
    "id": "002",
    "status": "FAILURE",
    "message": "Something went wrong"
  }
]
and the sealed class would look like
Copy code
sealed class ResponseModel(
  open val id: String,
  open val status: ResponseStatus
)

enum class ResponseStatus { SUCCESS, FAILURE }

data class ResponseSuccessModel(
  override val id: String
): ResponseModel(id, SUCCESS)

data class ResponseFailureModel(
  override val id: String,
  val message: String
): ResponseModel(id, FAILURE)
I'd like to use a lens like
Copy code
val format = Body.auto<List<ResponseModel>>().toLens()
Is anything like this possible?