blob: a88bd2e03a51c7c1f14d935f6de6a78014b3069d (
plain) (
tree)
|
|
package app
object Decorated extends cask.MainRoutes{
class User{
override def toString = "[haoyi]"
}
class loggedIn extends cask.RawDecorator {
def wrapFunction(ctx: cask.Request, delegate: Delegate): OuterReturned = {
delegate(Map("user" -> new User()))
}
}
class withExtra extends cask.RawDecorator {
def wrapFunction(ctx: cask.Request, delegate: Delegate): OuterReturned = {
delegate(Map("extra" -> 31337))
}
}
@withExtra()
@cask.get("/hello/:world")
def hello(world: String)(extra: Int) = {
world + extra
}
@loggedIn()
@cask.get("/internal/:world")
def internal(world: String)(user: User) = {
world + user
}
@withExtra()
@loggedIn()
@cask.get("/internal-extra/:world")
def internalExtra(world: String)(user: User)(extra: Int) = {
world + user + extra
}
@withExtra()
@loggedIn()
@cask.get("/ignore-extra/:world")
def ignoreExtra(world: String)(user: User) = {
world + user
}
initialize()
}
|