aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewart@driver.xyz>2017-05-09 19:13:29 -0400
committerStewart Stewart <stewart@driver.xyz>2017-05-10 13:32:54 -0400
commitb5842ef89f814d6bc9286a2a7de8278bb4411e94 (patch)
tree97cdd6866d68dc1801a2193ccc7ff19e287c347e
parent8f83659c4b1211b35e5dd599ab42c18c33c075f0 (diff)
downloaddriver-core-b5842ef89f814d6bc9286a2a7de8278bb4411e94.tar.gz
driver-core-b5842ef89f814d6bc9286a2a7de8278bb4411e94.tar.bz2
driver-core-b5842ef89f814d6bc9286a2a7de8278bb4411e94.zip
add method for normalize uuid constructed from path
-rw-r--r--src/main/scala/xyz/driver/core/json.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/json.scala b/src/main/scala/xyz/driver/core/json.scala
index 21bcad5..96e74c0 100644
--- a/src/main/scala/xyz/driver/core/json.scala
+++ b/src/main/scala/xyz/driver/core/json.scala
@@ -1,5 +1,7 @@
package xyz.driver.core
+import java.util.UUID
+
import akka.http.scaladsl.model.Uri.Path
import akka.http.scaladsl.server.PathMatcher.{Matched, Unmatched}
import akka.http.scaladsl.server.{PathMatcher, _}
@@ -22,6 +24,13 @@ object json {
}
}
+ def UuidInPath[T]: PathMatcher1[Id[T]] = new PathMatcher1[Id[T]] {
+ def apply(path: Path) = path match {
+ case Path.Segment(segment, tail) => Matched(tail, Tuple1(Id[T](UUID.fromString(segment).toString)))
+ case _ => Unmatched
+ }
+ }
+
implicit def idFormat[T] = new RootJsonFormat[Id[T]] {
def write(id: Id[T]) = JsString(id.value)