summaryrefslogtreecommitdiff
path: root/example/decorated/app/src/Decorated.scala
diff options
context:
space:
mode:
Diffstat (limited to 'example/decorated/app/src/Decorated.scala')
-rw-r--r--example/decorated/app/src/Decorated.scala44
1 files changed, 44 insertions, 0 deletions
diff --git a/example/decorated/app/src/Decorated.scala b/example/decorated/app/src/Decorated.scala
new file mode 100644
index 0000000..77f9133
--- /dev/null
+++ b/example/decorated/app/src/Decorated.scala
@@ -0,0 +1,44 @@
+package app
+object Decorated extends cask.MainRoutes{
+ class User{
+ override def toString = "[haoyi]"
+ }
+ class loggedIn extends cask.Decorator {
+ def wrapFunction(ctx: cask.ParamContext, delegate: Delegate): Returned = {
+ delegate(Map("user" -> new User()))
+ }
+ }
+ class withExtra extends cask.Decorator {
+ def wrapFunction(ctx: cask.ParamContext, delegate: Delegate): Returned = {
+ 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()
+}