From 197885a402a95dc68dce04d490843021844ab359 Mon Sep 17 00:00:00 2001 From: ArtRand Date: Wed, 7 Feb 2018 17:08:01 -0800 Subject: add fromStringOrThrow to Dal --- src/main/scala/xyz/driver/core/database/Dal.scala | 5 +++++ 1 file changed, 5 insertions(+) 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 { -- cgit v1.2.3