Skip to content

Instantly share code, notes, and snippets.

View charmygarg's full-sized avatar
💻
A Girl who code...

Charmy garg charmygarg

💻
A Girl who code...
View GitHub Profile
import com.outworkers.phantom.dsl._
import com.outworkers.phantom.dsl._
object Defaults {
val Connector = ContactPoint.local.keySpace(KeySpace("my_keyspace")
.ifNotExists().`with`(replication eqs SimpleStategy.replication_factor(1)))
}
class CassandraDatabase(override val connector: CassandraConnection) extends Database[CassandraDatabase](connector) {
object users extends Users with Connector
}
case class User(
id: String,
email: Set[String],
name: String
)
import com.outworkers.phantom.dsl._
abstract class Users extends Table[Users, User] {
object id extends StringColumn with PartitionKey
object email extends SetColumn[String]
object name extends StringColumn with PartitionKey
}
trait Table[T <: Table[T, R], R] extends CassandraTable[T, R] with TableAliases[T, R] with RootConnector
package com.outworkers.phantom.connectors
trait RootConnector extends scala.AnyRef {
implicit def space : com.outworkers.phantom.connectors.KeySpace
implicit def session : com.datastax.driver.core.Session
}
def save(user: User): Future[ResultSet] = {
insert
.value(_.id, user.id)
.value(_.name, user.name)
.value(_.email, user.email)
.future()
}
def getAllUsers: Future[List[User]] = {
select
.fetch()
}
def getByid(id: String): Future[Option[String]] = {
select(_.name)
.where(_.id eqs id)
.allowFiltering()
.one()
@charmygarg
charmygarg / pom.xml
Created March 26, 2018 10:13
VAVR Maven dependency
<dependencies>
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr</artifactId>
<version>0.9.0</version>
</dependency>
</dependencies>
@charmygarg
charmygarg / vavr_list
Created March 26, 2018 10:22
VAVR List Example
List<String> list = List.of("Java", "PHP", "Jquery", "JavaScript", "JShell", "JAVA");