2

クライアントからの次のパラメーターを持つ可能性のある 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") に何か問題があった場合。

4

1 に答える 1