@@ -31,12 +31,12 @@ To delete a cookie, set its `expires` parameter to an instant in the past, for e
3131import java .util .UUID
3232import java .util .concurrent .ConcurrentHashMap
3333
34- object MyApp extends cask.MainRoutes {
34+ object Example extends cask.MainRoutes {
3535
3636 val sessionIds = ConcurrentHashMap .newKeySet[String ]()
3737
3838 @ cask.get(" /login" )
39- def getLogin () = {
39+ def getLogin (): cask. Response [ String ] = {
4040 val html =
4141 """ <!doctype html>
4242 |<html>
@@ -55,7 +55,7 @@ object MyApp extends cask.MainRoutes {
5555 }
5656
5757 @ cask.postForm(" /login" )
58- def postLogin (name : String , password : String ) = {
58+ def postLogin (name : String , password : String ): cask. Response [ String ] = {
5959 if (name == " user" && password == " password" ) {
6060 val sessionId = UUID .randomUUID().toString
6161 sessionIds.add(sessionId)
@@ -66,7 +66,7 @@ object MyApp extends cask.MainRoutes {
6666 }
6767
6868 @ cask.get(" /check" )
69- def checkLogin (request : cask.Request ) = {
69+ def checkLogin (request : cask.Request ): String = {
7070 val sessionId = request.cookies.get(" sessionId" )
7171 if (sessionId.exists(cookie => sessionIds.contains(cookie.value))) {
7272 " You are logged in"
@@ -90,12 +90,12 @@ object MyApp extends cask.MainRoutes {
9090import java .util .UUID
9191import java .util .concurrent .ConcurrentHashMap
9292
93- object MyApp extends cask.MainRoutes :
93+ object Example extends cask.MainRoutes :
9494
9595 val sessionIds = ConcurrentHashMap .newKeySet[String ]()
9696
9797 @ cask.get(" /login" )
98- def getLogin () =
98+ def getLogin (): cask. Response [ String ] =
9999 val html =
100100 """ <!doctype html>
101101 |<html>
@@ -113,24 +113,24 @@ object MyApp extends cask.MainRoutes:
113113 cask.Response (data = html, headers = Seq (" Content-Type" -> " text/html" ))
114114
115115 @ cask.postForm(" /login" )
116- def postLogin (name : String , password : String ) =
117- if name == " user" && password == " password" :
116+ def postLogin (name : String , password : String ): cask. Response [ String ] =
117+ if name == " user" && password == " password" then
118118 val sessionId = UUID .randomUUID().toString
119119 sessionIds.add(sessionId)
120120 cask.Response (data = " Success!" , cookies = Seq (cask.Cookie (" sessionId" , sessionId)))
121121 else
122122 cask.Response (data = " Authentication failed" , statusCode = 401 )
123123
124- @ cask.get(" /check" )
125- def checkLogin (request : cask.Request ) =
126- val sessionId = request.cookies.get(" sessionId" )
127- if sessionId.exists(cookie => sessionIds.contains(cookie.value)):
128- " You are logged in"
129- else
130- " You are not logged in"
124+ @ cask.get(" /check" )
125+ def checkLogin (request : cask.Request ): String =
126+ val sessionId = request.cookies.get(" sessionId" )
127+ if sessionId.exists(cookie => sessionIds.contains(cookie.value)) then
128+ " You are logged in"
129+ else
130+ " You are not logged in"
131131
132132 @ cask.get(" /logout" )
133- def logout (sessionId : cask.Cookie ) =
133+ def logout (sessionId : cask.Cookie ): cask. Response [ String ] =
134134 sessionIds.remove(sessionId.value)
135135 cask.Response (data = " Successfully logged out!" , cookies = Seq (cask.Cookie (" sessionId" , " " , expires = Instant .EPOCH )))
136136
@@ -154,7 +154,7 @@ through the last argument group. Here we are passing the session identifier to a
154154{% tab 'Scala 2' %}
155155``` scala
156156class loggedIn extends cask.RawDecorator {
157- override def wrapFunction (ctx : cask.Request , delegate : Delegate ) = {
157+ override def wrapFunction (ctx : cask.Request , delegate : Delegate ): Result [ Raw ] = {
158158 ctx.cookies.get(" sessionId" ) match {
159159 case Some (cookie) if sessionIds.contains(cookie.value) => delegate(Map (" sessionId" -> cookie.value))
160160 case _ => cask.router.Result .Success (cask.model.Response (" You aren't logged in" , 403 ))
@@ -164,15 +164,15 @@ class loggedIn extends cask.RawDecorator {
164164
165165@ loggedIn()
166166@ cask.get(" /decorated" )
167- def decorated ()(sessionId : String ) = {
167+ def decorated ()(sessionId : String ): String = {
168168 s " You are logged in with id: $sessionId"
169169}
170170```
171171{% endtab %}
172172{% tab 'Scala 3' %}
173173``` scala
174174class loggedIn extends cask.RawDecorator :
175- override def wrapFunction (ctx : cask.Request , delegate : Delegate ) =
175+ override def wrapFunction (ctx : cask.Request , delegate : Delegate ): Result [ Raw ] =
176176 ctx.cookies.get(" sessionId" ) match
177177 case Some (cookie) if sessionIds.contains(cookie.value) =>
178178 delegate(Map (" sessionId" -> cookie.value))
@@ -182,7 +182,7 @@ class loggedIn extends cask.RawDecorator:
182182
183183@ loggedIn()
184184@ cask.get(" /decorated" )
185- def decorated ()(sessionId : String ) = s " You are logged in with id: $sessionId"
185+ def decorated ()(sessionId : String ): String = s " You are logged in with id: $sessionId"
186186```
187187{% endtab %}
188188{% endtabs %}
0 commit comments