Skip to content

Instantly share code, notes, and snippets.

@lab3
Created September 25, 2014 01:16
Show Gist options
  • Save lab3/893f5bea365ff36c67aa to your computer and use it in GitHub Desktop.
Save lab3/893f5bea365ff36c67aa to your computer and use it in GitHub Desktop.
import scala.concurrent.Future
import org.apache.log4j.{LogManager, Logger}
import com.datastax.driver.core.Row
import com.websudos.phantom.Implicits._
import org.joda.time._
case class AnswerClusteredKeyRow(
decoder_key: String,
param_id: BigInt,
answers: Set[Int],
expires: DateTime,
first_answered: DateTime,
last_answered: DateTime
)
class AnswerClusteredKeyTable extends CassandraTable[AnswerClusteredKeyTable, AnswerClusteredKeyRow] with CassandraConnector {
object decoder_key extends StringColumn(this) with PartitionKey[String]
object param_id extends BigIntColumn(this) with PrimaryKey[BigInt]
object answers extends SetColumn[AnswerClusteredKeyTable, AnswerClusteredKeyRow, Int](this)
object expires extends DateTimeColumn(this)
object first_answered extends DateTimeColumn(this)
object last_answered extends DateTimeColumn(this)
override def fromRow(r: Row): AnswerClusteredKeyRow = {
println(r.toString())
println(param_id(r))
println(decoder_key(r))
AnswerClusteredKeyRow(
decoder_key(r),
param_id(r),
answers(r).toSet,
expires(r),
first_answered(r),
last_answered(r)
)
}
}
object AnswerClusteredKeyService extends AnswerClusteredKeyTable {
val LOG: Logger = LogManager.getLogger(AnswerClusteredKeyService.getClass)
def getByKeyAndParam(key: String, param_id: Int): Future[Option[AnswerClusteredKeyRow]] = {
AnswerClusteredKeyService.select.where(_.decoder_key eqs key).and(_.param_id eqs 1).one()
}
override def tableName = "answers_clustered"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment