diff options
author | ArtRand <arand@soe.ucsc.edu> | 2018-02-07 17:08:01 -0800 |
---|---|---|
committer | ArtRand <arand@soe.ucsc.edu> | 2018-02-07 17:08:01 -0800 |
commit | 197885a402a95dc68dce04d490843021844ab359 (patch) | |
tree | c9cc4090c774056372f592d40ed7492f1bb2252f /src | |
parent | e848f3822e934e1656b2008dc956b50fa53cc20a (diff) | |
download | driver-core-197885a402a95dc68dce04d490843021844ab359.tar.gz driver-core-197885a402a95dc68dce04d490843021844ab359.tar.bz2 driver-core-197885a402a95dc68dce04d490843021844ab359.zip |
add fromStringOrThrow to Dal
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/xyz/driver/core/database/Dal.scala | 5 |
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 { |