diff options
author | ArtRand <arand@soe.ucsc.edu> | 2018-02-08 14:24:46 -0800 |
---|---|---|
committer | ArtRand <arand@soe.ucsc.edu> | 2018-02-08 14:24:46 -0800 |
commit | 67e3616ad598fc48c246821ae94623252b97e477 (patch) | |
tree | c0fc76af62d9b69b8c05f6d54129bfa8828ca84d /src | |
parent | 197885a402a95dc68dce04d490843021844ab359 (diff) | |
download | driver-core-67e3616ad598fc48c246821ae94623252b97e477.tar.gz driver-core-67e3616ad598fc48c246821ae94623252b97e477.tar.bz2 driver-core-67e3616ad598fc48c246821ae94623252b97e477.zip |
second attempt, don't touch dal, make a trait of converter helper methods
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/xyz/driver/core/database/Converters.scala | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/database/Converters.scala b/src/main/scala/xyz/driver/core/database/Converters.scala new file mode 100644 index 0000000..cfc5afd --- /dev/null +++ b/src/main/scala/xyz/driver/core/database/Converters.scala @@ -0,0 +1,14 @@ +package xyz.driver.core.database + +import xyz.driver.core.rest.errors.DatabaseException + +import scala.reflect.ClassTag + +trait Converters { + def fromStringOrThrow[T](entityStr: String, mapper: (String => Option[T]), entityName: String): T = + mapper(entityStr).getOrElse(throw DatabaseException(s"Invalid $entityName in database: $entityStr")) + + def expectValid[T](mapper: String => Option[T], query: String)(implicit ct: ClassTag[T]): T = { + fromStringOrThrow[T](query, mapper, ct.toString()) + } +} |