Skip to content

Commit

Permalink
Partition key name now parameterized in CassandraRepository, fixes #19
Browse files Browse the repository at this point in the history
  • Loading branch information
manuelkiessling committed Jan 12, 2016
1 parent a88185c commit 620d709
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
9 changes: 5 additions & 4 deletions api/app/repositories/CassandraRepository.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ import com.datastax.driver.core.querybuilder.QueryBuilder._
import com.datastax.driver.core.{Row, Session}
import models.Model

abstract class CassandraRepository[M <: Model, I](session: Session, tablename: String) extends Repository[M, I] {
abstract class CassandraRepository[M <: Model, I](session: Session, tablename: String, partitionKeyName: String)
extends Repository[M, I] {
def rowToModel(row: Row): M

def getOneRowById(id: I): Row = {
def getOneRowBySinglePartitionKeyId(partitionKeyValue: I): Row = {
val selectStmt =
select()
.from(tablename)
.where(QueryBuilder.eq("testcase_id", id))
.where(QueryBuilder.eq(partitionKeyName, partitionKeyValue))
.limit(1)

val resultSet = session.execute(selectStmt)
Expand All @@ -21,7 +22,7 @@ abstract class CassandraRepository[M <: Model, I](session: Session, tablename: S
}

override def getOneById(id: I): M = {
val row = getOneRowById(id)
val row = getOneRowBySinglePartitionKeyId(id)
rowToModel(row)
}
}
3 changes: 2 additions & 1 deletion api/app/repositories/StatisticsRepository.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package repositories
import com.datastax.driver.core.{Row, Session}
import models.Statistics

class StatisticsRepository(session: Session) extends CassandraRepository[Statistics, String](session, "statistics") {
class StatisticsRepository(session: Session)
extends CassandraRepository[Statistics, String](session, "statistics", "testcase_id") {
override def rowToModel(row: Row): Statistics = {
Statistics(row.getString("testresult_id"), row.getInt("number_of_200"))
}
Expand Down

0 comments on commit 620d709

Please sign in to comment.