Files
odc-analyzer/app/services/TokenService.scala
Šesták Vít 4b87ced31f Initial commit
2016-01-10 17:31:07 +01:00

37 lines
1.3 KiB
Scala

package services
import javax.inject.Inject
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator
import com.mohiva.play.silhouette.impl.daos.AuthenticatorDAO
import play.api.db.slick.{HasDatabaseConfigProvider, DatabaseConfigProvider}
import models.tables._
import scala.concurrent.{Future, ExecutionContext}
class TokenService @Inject() (protected val dbConfigProvider: DatabaseConfigProvider)(implicit executionContext: ExecutionContext)
extends AuthenticatorDAO[CookieAuthenticator]
with HasDatabaseConfigProvider[models.profile.type]{
import dbConfig.driver.api._
println(authTokens.schema.create.statements.toIndexedSeq)
override def find(id: String): Future[Option[CookieAuthenticator]] = {
db.run(authTokens.filter(_.id === id).result).map{_.headOption}
}
override def add(authenticator: CookieAuthenticator): Future[CookieAuthenticator] = {
db.run(authTokens += authenticator).map(_ => authenticator)
}
override def remove(id: String): Future[Unit] = {
db.run(authTokens.filter(_.id === id).delete).map(_ => ())
}
override def update(authenticator: CookieAuthenticator): Future[CookieAuthenticator] = {
db.run(authTokens.filter(_.id === authenticator.id).update(authenticator)).map(_ => authenticator)
}
}