aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/xyz/driver/core/database/Dal.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/database/Dal.scala b/src/main/scala/xyz/driver/core/database/Dal.scala
index 581bd0f..f9af7fe 100644
--- a/src/main/scala/xyz/driver/core/database/Dal.scala
+++ b/src/main/scala/xyz/driver/core/database/Dal.scala
@@ -1,6 +1,7 @@
package xyz.driver.core.database
import slick.lifted.AbstractTable
+import xyz.driver.core.rest.errors.DatabaseException
import scala.concurrent.{ExecutionContext, Future}
import scalaz.{ListT, Monad, OptionT}
@@ -16,6 +17,10 @@ trait Dal {
def customAction[R](action: => OptionT[Future, R]): OptionT[T, R] =
OptionT[T, R](customAction(action.run))
+
+ implicit def fromStringOrThrow[D](mapper: (String) => Option[D])(msg: String)(fs: String): D = {
+ mapper(fs).getOrElse(throw DatabaseException(msg))
+ }
}
class FutureDal(executionContext: ExecutionContext) extends Dal {