io.fintrospect.renderers.SiteMapModuleRenderer.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fintrospect_2.10 Show documentation
Show all versions of fintrospect_2.10 Show documentation
Library that adds self-documentation to Finagle server endpoint services
package io.fintrospect.renderers
import java.net.URL
import com.twitter.finagle.http.Method.Get
import com.twitter.finagle.http.Status.{BadRequest, NotFound, Ok}
import com.twitter.finagle.http.path.Path
import com.twitter.finagle.http.{Request, Response}
import io.fintrospect.ServerRoute
import io.fintrospect.formats.Xml.ResponseBuilder.implicits.{responseBuilderToResponse, statusToResponseBuilderConfig}
import io.fintrospect.parameters.{InvalidParameter, Security}
class SiteMapModuleRenderer(baseUrl: URL) extends ModuleRenderer {
override def badRequest(badParameters: Seq[InvalidParameter]): Response = BadRequest(badParameters.toString())
override def notFound(request: Request): Response = NotFound()
override def description(basePath: Path, security: Security, routes: Seq[ServerRoute[_, _]]): Response = {
def buildUrl(route: ServerRoute[_, _]) =
{baseUrl + route.describeFor(basePath)}
Ok(
{routes.filter(_.method == Get).map(buildUrl)}
)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy