Play Framework JSON Reader i niestandardowe błędy J

Próbuję odczytać JSON, który może mieć następujące parametry pochodzące od klienta

{
   "email" : "[email protected]",
   "password" : "XXXX",
   "facebookToken": "XXXXXXXXXXX"
}

ThefacebookToken może być Null lub Not present, w takim przypadkuEmail Hasło należy wypełnić i odwrotnie.

Mam problem z zbudowaniem tego Czytnika, oto co mam do tej pory:

val loginEmail = (
  ( __ \ "email").read[String] and
  ( __ \ "password").read[String]
)((email: String, password: String) => new User(email, password))

val loginFacebook = (
  ( __ \ "facebookToken").read[String]
)((facebookToken : String) => new User(facebookToken))

val loginReader(RequestBodyJson) = (
    (RequestBodyJson).read[User](loginEmail) or
    (RequestBodyJson).read[User](loginFacebook)
)

Czy ktoś może mi pokazać, jak to zrobić poprawnie?

Chciałbym również, aby zwrócił błąd JSEr z dostosowanymi wiadomościami. Na przykład, jeśli nie ma znacznika FacebookToken i coś było nie tak z adresem e-mail („E-mail był nieprawidłowy”) zamiast „/ nie znaleziono ścieżki facebookToken”, błąd ogólny.

questionAnswers(1)

yourAnswerToTheQuestion