From f92036251d778a6c7a0445a46c1fdda930e19cfc Mon Sep 17 00:00:00 2001 From: vlad Date: Tue, 11 Apr 2017 16:21:09 -0700 Subject: Review comments --- src/main/scala/xyz/driver/core/database/Dal.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/main/scala/xyz/driver/core/database/Dal.scala') diff --git a/src/main/scala/xyz/driver/core/database/Dal.scala b/src/main/scala/xyz/driver/core/database/Dal.scala index d863e50..1bc3827 100644 --- a/src/main/scala/xyz/driver/core/database/Dal.scala +++ b/src/main/scala/xyz/driver/core/database/Dal.scala @@ -3,7 +3,7 @@ package xyz.driver.core.database import slick.lifted.AbstractTable import scala.concurrent.{ExecutionContext, Future} -import scalaz.{ListT, Monad} +import scalaz.{ListT, Monad, OptionT} import scalaz.std.scalaFuture._ trait Dal { @@ -13,6 +13,12 @@ trait Dal { def execute[D](operations: T[D]): Future[D] def noAction[V](v: V): T[V] def customAction[R](action: => Future[R]): T[R] + + def execute[D](action: => OptionT[T, D]): OptionT[Future, D] = + action.mapT(execute[Option[D]]) + + def customAction[R](action: => OptionT[Future, R]): OptionT[T, R] = + OptionT[T, R](customAction(action.run)) } class FutureDal(executionContext: ExecutionContext) extends Dal { -- cgit v1.2.3