aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtRand <arand@soe.ucsc.edu>2018-02-07 17:08:01 -0800
committerArtRand <arand@soe.ucsc.edu>2018-02-07 17:08:01 -0800
commit197885a402a95dc68dce04d490843021844ab359 (patch)
treec9cc4090c774056372f592d40ed7492f1bb2252f
parente848f3822e934e1656b2008dc956b50fa53cc20a (diff)
downloaddriver-core-197885a402a95dc68dce04d490843021844ab359.tar.gz
driver-core-197885a402a95dc68dce04d490843021844ab359.tar.bz2
driver-core-197885a402a95dc68dce04d490843021844ab359.zip
add fromStringOrThrow to Dal
-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 {