diff --git a/src/main/scala/servlet/TransactionFilter.scala b/src/main/scala/servlet/TransactionFilter.scala index 3cd74c8..5e034d4 100644 --- a/src/main/scala/servlet/TransactionFilter.scala +++ b/src/main/scala/servlet/TransactionFilter.scala @@ -37,4 +37,8 @@ slick.jdbc.JdbcBackend.Database.forURL(context.getInitParameter("db.url"), context.getInitParameter("db.user"), context.getInitParameter("db.password")) + + def getSession(req: ServletRequest): slick.jdbc.JdbcBackend#Session = + req.getAttribute(Keys.Request.DBSession).asInstanceOf[slick.jdbc.JdbcBackend#Session] + } diff --git a/src/main/scala/util/Implicits.scala b/src/main/scala/util/Implicits.scala index 77c095e..f1b1115 100644 --- a/src/main/scala/util/Implicits.scala +++ b/src/main/scala/util/Implicits.scala @@ -2,6 +2,8 @@ import scala.util.matching.Regex import scala.util.control.Exception._ +import slick.jdbc.JdbcBackend +import servlet.Database import javax.servlet.http.{HttpSession, HttpServletRequest} /** @@ -9,6 +11,9 @@ */ object Implicits { + // Convert to slick session. + implicit def request2Session(implicit request: HttpServletRequest): JdbcBackend#Session = Database.getSession(request) + implicit class RichSeq[A](seq: Seq[A]) { def splitWith(condition: (A, A) => Boolean): Seq[Seq[A]] = split(seq)(condition)