我正在尝试创建一个自定义play.api.mvc.Action,可用于CustomerAccount根据请求填充a 并传递CustomerAccount到控制器.
继对播放2.2.x的文档,我创建了一个Action和ActionBuilder,但我似乎无法返回CustomerAccount从动作中.
我目前的代码是:
case class AccountWrappedRequest[A](account: CustomerAccount, request: Request[A]) extends WrappedRequest[A](request)
case class Account[A](action: Action[A]) extends Action[A] {
lazy val parser = action.parser
def apply(request: Request[A]): Future[SimpleResult] = {
AccountService.getBySubdomain(request.host).map { account =>
// Do something to return the account like return a new AccountWrappedRequest?
action(AccountWrappedRequest(account, request))
} getOrElse {
Future.successful(NotFound(views.html.account_not_found()))
}
}
}
object AccountAction extends ActionBuilder[AccountWrappedRequest] {
def invokeBlock[A](request: Request[A], block: (AccountWrappedRequest[A]) => …Run Code Online (Sandbox Code Playgroud)