app/db/ExplainerDB.scala (23 lines of code) (raw):
package db
import com.gu.atom.data.DynamoDataStore
import com.gu.contentatom.thrift.Atom
import models.{AtomAPIError, ExplainerDynamoDatastoreError}
import play.api.Logging
import util.AtomLogic._
trait ExplainerDBAPI {
def listAtoms(datastore: DynamoDataStore): Either[AtomAPIError, List[Atom]]
}
class ExplainerDB() extends ExplainerDBAPI with Logging {
def listAtoms(datastore: DynamoDataStore): Either[AtomAPIError, List[Atom]] = {
logger.info(s"Attempting to read all explainers from ${datastore.getClass.getName}")
try {
val result = datastore.listAtoms
logger.info(s"Successfully read alls explainers from ${datastore.getClass.getName}")
result.fold({
case x: Throwable => Left(ExplainerDynamoDatastoreError(x.getMessage))
}, Right(_))
} catch {
case e: Exception => processException(e)
}
}
}