Всем привет.
В Play framework 2.6 сильно перелопатили Action Compositions. Не могу врубиться, как теперь корректно создать ActionBuilder. Вот, для примера хочу создать «пустой» ActionBuilder:
AuthAction.scala
package actions
import com.google.inject.{Inject, Singleton}
import scala.concurrent.{Future, ExecutionContext}
import play.api.mvc._
import play.api.mvc.Results._
trait AuthActionT {
def authenticateAction: ActionBuilder[AuthenticatedRequest, AnyContent]
}
@Singleton
class AuthAction @Inject() (p: BodyParsers.Default)(implicit ec: ExecutionContext) extends AuthActionT {
def authenticateAction: ActionBuilder[AuthenticatedRequest, AnyContent] = {
new ActionBuilder[AuthenticatedRequest, AnyContent] {
def invokeBlock[A](request: Request[A], block: AuthenticatedRequest[A] => Future[Result]): Future[Result] = {
if (true) {
block(new AuthenticatedRequest("", request))
} else {
Future.successful(Unauthorized)
}
}
}
}
}
AuthenticatedRequest.scala
package actions
import play.api.mvc.{Request, WrappedRequest}
class AuthenticatedRequest[A](val a: String, val request: Request[A]) extends WrappedRequest[A](request)
Но это не работает - куча отладочного НЕХ'а.
Кто-нибудь может поделиться примером корректно работающего actionBuilder'a для Play 2.6.x или подсказть, что не так с кодом?
Заранее спасибо.