From 67e3616ad598fc48c246821ae94623252b97e477 Mon Sep 17 00:00:00 2001 From: ArtRand Date: Thu, 8 Feb 2018 14:24:46 -0800 Subject: second attempt, don't touch dal, make a trait of converter helper methods --- src/main/scala/xyz/driver/core/database/Converters.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/scala/xyz/driver/core/database/Converters.scala (limited to 'src/main') 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()) + } +} -- cgit v1.2.3