From b5842ef89f814d6bc9286a2a7de8278bb4411e94 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Tue, 9 May 2017 19:13:29 -0400 Subject: add method for normalize uuid constructed from path --- src/main/scala/xyz/driver/core/json.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/scala') 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) -- cgit v1.2.3