Skip to content

Instantly share code, notes, and snippets.

@gbougeard
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gbougeard/6d7a05baedbff9b16ba3 to your computer and use it in GitHub Desktop.
Save gbougeard/6d7a05baedbff9b16ba3 to your computer and use it in GitHub Desktop.
def jodaLongOrISO: Rule[JsValue, DateTime] = {
val invalid = Failure(Seq(ValidationError("error.DateTime")))
Rule.fromMapping[JsValue, DateTime] {
case JsNumber(v) ⇒ jodaTime.validate(v.toLong).asOpt match {
case Some(dt) ⇒ Success(dt)
case None ⇒ invalid
}
case JsString(v) ⇒ jodaDate.validate(v).asOpt match {
case Some(dt) ⇒ Success(dt)
case None ⇒ invalid
}
case _ ⇒ invalid
}
}
@jto
Copy link

jto commented Jul 30, 2015

un truc du genre

Rule.zero[JsValue].flatMap {
   case JsNumber(v) => rule1
   case JsString(v) => rule2
}

?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment