org.http4k.contract.StaticModule.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of http4k-contract Show documentation
Show all versions of http4k-contract Show documentation
http4k typesafe HTTP contracts and OpenApi support
package org.http4k.contract
import org.http4k.core.Filter
import org.http4k.core.Request
import org.http4k.core.ResourceLoader
import org.http4k.core.StaticContent
import org.http4k.core.Status.Companion.NOT_FOUND
import org.http4k.core.then
class StaticModule(basePath: BasePath,
resourceLoader: ResourceLoader = ResourceLoader.Classpath("/"),
moduleFilter: Filter = Filter { it }) : Module {
private val staticContent = moduleFilter.then(StaticContent(basePath.toString(), resourceLoader))
override fun toRouter(): Router = {
staticContent(it).let { if (it.status != NOT_FOUND) { _: Request -> it } else null }
}
}