複雑な引数の型を持つIsAuthenticated
メソッドがあります (play2 の zentasks の例からコピーしました):
def IsAuthenticated(f: => String => Request[AnyContent] => Result): Action[(Action[AnyContent], AnyContent)] =
Security.Authenticated(username, onUnauthorized) { userId =>
Action { implicit request =>
val email = request.session("user.email")
f(email)(request)
}
}
それを使用するために、私の行動は次のとおりです。
def delete(id:String) = IsAuthenticated { email => request =>
...
}
email
使用する必要がない場合は、イベントを宣言する必要があることがわかります。代わりに使用できます_
:
def delete(id:String) = IsAuthenticated { _ => _ =>
...
}
しかし_ => _ =>
、まだ退屈です。
メソッドをリファクタリングして使用法を簡単にする方法は? email
たとえば、 andが必要ない場合はrequest
、次のことができます。
def delete(id:String) = IsAuthenticated {
...
}
が必要な場合はrequest
、次のことができます。
def delete(id:String) = IsAuthenticated { request =>
...
}
が必要な場合はemail
、それらすべてを宣言します。
def delete(id:String) = IsAuthenticated { email => request =>
...
}