Skip to content

Instantly share code, notes, and snippets.

Adam Warski adamw

Block or report user

Report or block adamw

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View Example4.scala
import zio._
import zio.duration._
class Example4(emailService: EmailService) {
// Schedule an email to each address, but send at most 10 in parallel
def welcomeUsers(emails: List[String]): Task[Unit] =
ZIO.foreachParN_(10)(emails)(sendWelcomeEmail)
// Try to send a welcome email at most 5 times,
// sleeping for 1 second between attempts
View Example3.kt
import kotlinx.coroutines.future.await
import java.util.concurrent.CompletableFuture
internal class Example3(private val database: Database) {
suspend fun activateUser(userId: Long?): Boolean {
val user = database.findUser(userId).await()
if (user != null && !user.isActive) {
database.activateUser(userId).await()
return true
} else {
View Example2.java
class Example2 {
private final Database database;
Example2(Database database) {
this.database = database;
}
boolean activateUser(Long userId) {
User user = database.findUser(userId);
if (user != null && !user.isActive()) {
View Example1.java
import java.util.concurrent.CompletableFuture;
class Example1 {
private final Database database;
Example1(Database database) {
this.database = database;
}
CompletableFuture<Boolean> activateUser(Long userId) {
View x.scala
package sttp.tapir.example
import io.circe.generic.JsonCodec
import sttp.tapir._
import sttp.model.StatusCode
import sttp.tapir.docs.openapi._
import sttp.tapir.openapi.circe.yaml._
import sttp.tapir.json.circe._
object Example extends App {
View x.scala
object CirceAnnotationCodecs {
import io.circe.{Decoder, Encoder}
import io.circe.generic.JsonCodec
import sttp.tapir._
import sttp.tapir.json.circe._
@JsonCodec
case class Foo(x: String)
View Example4Test.scala
it should "add 1 point" in {
// given
val updatedPoints = new AtomicInteger(0)
val userId = UUID.randomUUID()
val stubDao = newStubDaoConstantPoints(15, updatedPoints)
// when
new Points(stubDao).increase(userId).transact(transactor).unsafeRunSync()
// then
View Example4Test.scala
override protected def beforeAll(): Unit = {
super.beforeAll()
transactor = Transactor(
(),
(_: Unit) => Resource.pure(null),
KleisliInterpreter[IO](
Blocker.liftExecutionContext(ExecutionContext.global))
.ConnectionInterpreter,
Strategy.void
)
View Example3Test.scala
class Example3Test extends AnyFlatSpec with Matchers {
import Example3._
it should "add 1 point" in {
// given
val updatedPoints = new AtomicInteger(0)
val userId = UUID.randomUUID()
val stubDao = newStubDaoConstantPoints(15, updatedPoints)
// when
View Example3.scala
import java.util.UUID
import cats._
import cats.implicits._
class Points[F[_]: Monad](dao: Dao[F]) {
def increase(userId: UUID): F[Unit] =
for {
current <- dao.currentPoints(userId)
updated = calculatePointsIncrease(current)
You can’t perform that action at this time.