From a8882aebc2f9ebe5c0d2503d7fbab2a320b6c0d3 Mon Sep 17 00:00:00 2001 From: Kseniya Tomskikh Date: Fri, 27 Oct 2017 14:24:43 +0700 Subject: Fixed bug --- .../scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala (limited to 'src/main/scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala') diff --git a/src/main/scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala b/src/main/scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala new file mode 100644 index 0000000..44f177c --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuicommon/db/JdbcDbIo.scala @@ -0,0 +1,28 @@ +package xyz.driver.pdsuicommon.db + +import xyz.driver.pdsuicommon.logging._ + +import scala.concurrent.Future +import scala.util.{Failure, Success, Try} + +class JdbcDbIo(sqlContext: TransactionalContext) extends DbIo with PhiLogging { + + override def runAsync[T](f: => T): Future[T] = { + Future(f)(sqlContext.executionContext) + } + + override def runAsyncTx[T](f: => T): Future[T] = { + import sqlContext.executionContext + + Future(sqlContext.transaction(f)).andThen { + case Failure(e) => logger.error(phi"Can't run a transaction: $e") + } + } + + override def runSyncTx[T](f: => T): Unit = { + Try(sqlContext.transaction(f)) match { + case Success(_) => + case Failure(e) => logger.error(phi"Can't run a transaction: $e") + } + } +} -- cgit v1.2.3