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.