фильтр значений перегруженного метода с альтернативами: в play-framework 2.6 - PullRequest
0 голосов
/ 07 февраля 2019

Я обновился до версии 2.6 из игры 2.4 Я получаю эту ошибку времени компиляции

[error] myproject/app/models/jsonparsing/DirectUserSignUpJsonValidation.scala:27: overloaded method value filter with alternatives:
[error]   (error: play.api.libs.json.JsonValidationError)(f: String => Boolean)play.api.libs.json.Reads[String] <and>
[error]   (f: String => Boolean)play.api.libs.json.Reads[String]
[error]  cannot be applied to (play.api.data.validation.ValidationError)
[error]       filter(ValidationError("Password length is less than 8"))(_.length >= 8).  

вот код

case class DirectUserSignUpValidation(firstName: String,
                                      lastName: String,
                                      email: String,
                                      password: String) extends Serializable

object DirectUserSignUpValidation {
  var validationErrorMsg=""
  implicit val readDirectUser: Reads[DirectUserSignUpValidation] = (
  (JsPath \ "firstName").read(minLength[String](1)) and
    (JsPath \ "lastName").read(minLength[String](1)) and
    (JsPath \ "email").read(email) and
    (JsPath \ "password").read[String].
      filter(ValidationError("Password length is less than 8"))(_.length >= 8).  
      filterNot(ValidationError("Password is all numbers"))(_.forall(_.isDigit)).
      filterNot(ValidationError("Password is all letters"))(_.forall(_.isLetter))
    )(DirectUserSignUpValidation.apply _)
}

1 Ответ

0 голосов
/ 07 февраля 2019

Новые библиотеки play-json теперь работают с JsonValidationError, а вы используете старую ValidationError.

...