Skip to content

Instantly share code, notes, and snippets.

View jczuchnowski's full-sized avatar
🎈

Jakub Czuchnowski jczuchnowski

🎈
View GitHub Profile
trait DatabaseProvider {
def databaseProvider: DatabaseProvider.Service
}
object DatabaseProvider {
trait Service {
def db: UIO[BasicBackend#DatabaseDef]
}
}
import zio.IO
trait AssetRepository {
def add(name: String, price: BigDecimal): IO[RepositoryFailure, AssetId]
def getById(id: AssetId): IO[RepositoryFailure, Option[Asset]]
def update(id: AssetId, name: String, price: BigDecimal): IO[RepositoryFailure, Unit]
}
val db = Database.forConfig("h2mem1")
val queryAction: DBIO[Option[Int]] = ...
val result: Future[Option[Int]] = db.run(queryAction)