summaryrefslogtreecommitdiff
path: root/example/endpoints/app/src/Endpoints.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:12:07 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:12:07 +0800
commit974dcbe09830785f202f54959ae5397e9084f7a0 (patch)
treed127d2aff446b8c50debfae3823ebba7e2b457ea /example/endpoints/app/src/Endpoints.scala
parenteb32d8d4a1e2bd50e5416fcfefd72dfe6da1a7bb (diff)
downloadcask-974dcbe09830785f202f54959ae5397e9084f7a0.tar.gz
cask-974dcbe09830785f202f54959ae5397e9084f7a0.tar.bz2
cask-974dcbe09830785f202f54959ae5397e9084f7a0.zip
add docs on writing custom endpoints
Diffstat (limited to 'example/endpoints/app/src/Endpoints.scala')
-rw-r--r--example/endpoints/app/src/Endpoints.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/example/endpoints/app/src/Endpoints.scala b/example/endpoints/app/src/Endpoints.scala
new file mode 100644
index 0000000..1960b93
--- /dev/null
+++ b/example/endpoints/app/src/Endpoints.scala
@@ -0,0 +1,32 @@
+package app
+
+
+class custom(val path: String, val methods: Seq[String]) extends cask.Endpoint{
+ type Output = Int
+ def wrapFunction(ctx: cask.ParamContext, delegate: Delegate): Returned = {
+ delegate(Map()) match{
+ case cask.internal.Router.Result.Success(num) =>
+ cask.internal.Router.Result.Success(
+ cask.Response("Echo " + num, statusCode = num)
+ )
+ case e: cask.internal.Router.Result.Error => e
+ }
+ }
+
+ // Change this if you want to change
+ def wrapPathSegment(s: String) = Seq(s)
+
+ type Input = Seq[String]
+ type InputParser[T] = cask.endpoints.QueryParamReader[T]
+}
+
+object Endpoints extends cask.MainRoutes{
+
+
+ @custom("/echo/:status", methods = Seq("get"))
+ def echoStatus(status: String) = {
+ status.toInt
+ }
+
+ initialize()
+}