将请求传递给scala函数

时间:2017-11-30 20:41:35

标签: scala playframework

我有一个scala函数,如下所示:

 def myfunction(uname: Option[String]) = Action.async { request => ...
     ....
     if  isLoggedAPerson(request) {
         do_something
     }
     else
     {
        do_something_else
     }
     .
 }

我想创建一个处理请求的Scala函数:

 def isLoggedAPerson(request) : Boolean = {
        val reqType = request.session.get("sessionType").getOrElse("No session")
        if (reqType == "Admin" || reqType =="staff") return true
        else return false
 }

但我不知道请求的数据类型。有谁知道吗?我错过了别的什么吗?

THX

1 个答案:

答案 0 :(得分:1)

request的类型为play.api.mvc.Request[AnyContent],可在Action.async的签名中看到:

final def async(block: (Request[AnyContent]) => Future[Result]): Action[AnyContent] 

因此,isLoggedAPerson看起来像是:

def isLoggedAPerson(request: Request[AnyContent]): Boolean = {
  ...
}