
org.http4k.lens.extensions.kt Maven / Gradle / Ivy
package org.http4k.lens
import dev.forkhandles.result4k.Failure
import dev.forkhandles.result4k.Result
import dev.forkhandles.result4k.Success
import org.http4k.core.Request
import org.http4k.routing.asRouter
/**
* Convert the result of a lens extraction to a Result4k type which
*/
fun LensExtractor.asResult(): LensExtractor> = object : LensExtractor> {
override fun invoke(target: IN): Result = try {
Success([email protected](target))
} catch (e: LensFailure) {
Failure(e)
}
}
/**
* Check the content of any lens on a request for routing purposes.
*/
fun Lens.matches(fn: (T) -> Boolean) = { r: Request ->
try {
fn(this(r))
} catch (e: LensFailure) {
false
}
}.asRouter()
© 2015 - 2025 Weber Informatics LLC | Privacy Policy