PredicatedAction.scala 551 B

12345678910111213141516171819
  1. package utils
  2. import play.api.mvc._
  3. /**
  4. * A predicated action is one where a condition must be satisfied in order to proceed with the request. If the
  5. * condition is not satisfied then a supplied status result is yielded.
  6. */
  7. class PredicatedActionBuilder {
  8. def apply[A](p: => Boolean, failed: => Result)(action: Action[A]): Action[A] = new Action[A] {
  9. def apply(request: Request[A]): Result = {
  10. if (p) action(request) else failed
  11. }
  12. lazy val parser = action.parser
  13. }
  14. }
  15. object PredicatedAction extends PredicatedActionBuilder