![JAR search and dependency download from the Maven repository](/logo.png)
com.iheart.thomas.dynamo.BanditsDAOs.scala Maven / Gradle / Ivy
package com.iheart.thomas
package dynamo
import cats.effect.Async
import com.iheart.thomas.bandit.bayesian.{BanditSpec, BanditSpecDAO}
import com.iheart.thomas.dynamo.DynamoFormats._
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient
object BanditsDAOs extends ScanamoManagement {
val banditStateTableName = "ds-bandit-state"
val banditSpecTableName = "ds-bandit-setting"
val banditKeyName = "feature"
val banditKey = ScanamoDAOHelperStringKey.keyOf(banditKeyName)
val tables =
List((banditStateTableName, banditKey), (banditSpecTableName, banditKey))
def ensureBanditTables[F[_]: Async](
readCapacity: Long,
writeCapacity: Long
)(implicit dc: DynamoDbAsyncClient
): F[Unit] =
ensureTables(tables, readCapacity, writeCapacity)
implicit def banditSpec[F[_]: Async](
implicit dynamoClient: DynamoDbAsyncClient
): BanditSpecDAO[F] =
new ScanamoDAOHelperStringKey[F, BanditSpec](
banditSpecTableName,
banditKeyName,
dynamoClient
) with BanditSpecDAO[F]
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy