Skip to content

Instantly share code, notes, and snippets.

@vichu
Created December 22, 2018 23:44
Show Gist options
  • Save vichu/37975f68e6be72b92a82bb90ec372943 to your computer and use it in GitHub Desktop.
Save vichu/37975f68e6be72b92a82bb90ec372943 to your computer and use it in GitHub Desktop.
import com.outworkers.phantom.dsl._
import scala.concurrent.Future
trait UserDatabaseService extends UserDbProvider {
// Orchestrate your low level queries appropriately.
def createUser(uuid: UUID, firstName: String, lastName: String, email:String): Future[Option[UUID]] =
database.userByIdInstance.createUserById(uuid, firstName, lastName, email)
.flatMap(_ => {
database.userByFirstName.createUserByUserName(uuid, firstName, lastName, email)
.map(rs => if(rs.wasApplied) Some(uuid) else None)
})
def selectUserById(uuid: UUID): Future[Option[User]] = database.userByIdInstance.getUserById(uuid)
def selectUserByFirstName(firstName: String): Future[Option[User]] = database.userByFirstName.getUserByFirstName(firstName)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment