クライアントからの次のパラメーターを持つ可能性のある JSON を読み込もうとしています
{
"email" : "foobar@gmail.com",
"password" : "XXXX",
"facebookToken": "XXXXXXXXXXX"
}
facebookTokenは Null または存在しない可能性があり、その場合はメール/パスワードを入力する必要があり、その逆も同様です。
このリーダーの作成に問題があります。これまでのところ、次のとおりです。
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)
)
誰かがこれを正しく行う方法を教えてもらえますか?
また、カスタマイズされたメッセージで JSError を返したいと思います。たとえば、FacebookToken が存在せず、"/facebookToken パスが見つかりません" という一般的なエラーではなく、電子メール ("Email was Invalid") に何か問題があった場合。