How can I get securesocial.currentUser in the Future?

42 views Asked by At

This is my code:

def getUser(implicit request:play.api.mvc.Request[Any],env:MyEnviroment): Future[User] = {

  SecureSocial.currentUser.map {
    maybeUser =>
      val userId = maybeUser.map(_.main.userId).getOrElse("unknown")    
      val user: User = UserAccessor.finduserbyid(userId)
      Future.successful(user)
  }

}
1

There are 1 answers

0
pedrorijo91 On

assuming SecureSocial.currentUser returns an Option, you probably want something like:

SecureSocial.currentUser.map {
    maybeUser =>
      val userId = maybeUser.map(_.main.userId).getOrElse("unknown")    
      val user: User = UserAccessor.finduserbyid(userId)
      Future.successful(user)
  }.getOrElse(Future.failed(new Exception("No current user"))