All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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