У меня есть DAO, где я проверяю имя пользователя и хочу расширить его для проверки пароля, но для целей тестирования, поскольку я новичок в этом, я проверяю только электронную почту. Вот ДАО:
def authenticate(username: String, password: String): Future[Option[User]] = {
db.run(Users.filter(_.email === username).result).map(_.headOption)
}
Теперь у меня есть форма с реализованным методом проверки. Я могу сделать обратный вызов onSuccess и onFailue, но не могу сделать onComplete. В настоящее время это так:
val loginForm = Form(
tuple(
"username" -> nonEmptyText,
"password" -> nonEmptyText
) verifying("Wrong username or password!", fields => fields match{
case (username, password) => {
val query = userDao.authenticate(username, password)
query onComplete {
case Success(Option[User]) => println("Success")
case Failure(_) => println("Failed ")
}
false
}
})
)
Итак, проблема в классе Success, как говорится Pattern type is incompatible with expected type, found: Option.type, required Option[User]
. Теперь, как решить эту ошибку и как я могу получить результат этого запроса на выборку через slick? Модель проста с электронной почтой и паролем в качестве значений.
Спасибо за помощь