hq/app/utils/attempt/PlayIntegration.scala (16 lines of code) (raw):

package utils.attempt import controllers.AssetsFinder import play.api.Logging import play.api.mvc.{Result, Results} import scala.concurrent.{ExecutionContext, Future} object PlayIntegration extends Results with Logging { def attempt[A](action: => Attempt[Result])(implicit ec: ExecutionContext, assetsFinder: AssetsFinder): Future[Result] = { action.fold( { failures => logger.error(failures.logMessage, failures.firstException.orNull) Status(failures.statusCode)(views.html.error(failures)) }, identity ) } }