package be.vandewalleh.validation import am.ik.yavi.core.Validator import am.ik.yavi.core.ViolationDetail import io.ktor.application.* import io.ktor.request.* suspend inline fun ApplicationCall.receiveValidated(validator: Validator): T { val value: T = receive() validator.validate(value).throwIfInvalid { ValidationException(it.details()) } return value } data class ValidationException(val details: List) : RuntimeException()