app/db/AtomDataStores.scala (19 lines of code) (raw):
package db
import com.gu.atom.data._
import com.gu.atom.publish.{PreviewKinesisAtomReindexer, PublishedKinesisAtomReindexer}
import config.{AWS, Config}
import models.{Live, Preview, Version}
class AtomDataStores(config: Config) {
def getDataStore(version: Version): DynamoDataStore = version match {
case Live => publishedDataStore
case Preview => previewDataStore
}
val previewDataStore = new PreviewDynamoDataStore(AWS.dynamoDB, config.previewDynamoTableName)
val publishedDataStore = new PublishedDynamoDataStore(AWS.dynamoDB, config.publishedDynamoTableName)
val explainerPreviewDataStore = new PreviewDynamoDataStore(AWS.dynamoDB, config.explainerPreviewDynamoTableName)
val explainerPublishedDataStore = new PublishedDynamoDataStore(AWS.dynamoDB, config.explainerPublishedDynamoTableName)
val reindexPreview: PreviewKinesisAtomReindexer =
new PreviewKinesisAtomReindexer(config.previewReindexKinesisStreamName, AWS.kinesisClient)
val reindexPublished: PublishedKinesisAtomReindexer =
new PublishedKinesisAtomReindexer(config.liveReindexKinesisStreamName, AWS.kinesisClient)
}