Review a generated http4s order route

from Scala backend development
Scala 3.9.0 / Cats Effect 3.7.1 / http4s 0.23.36 / Java 25 LTS advanced 8 min 4 issues to find

Review this route before it accepts production orders.

Authenticate the tenant, validate the request, create an order idempotently, and publish a durable notification after commit.

scala
def routes(
  service: OrderService,
  publisher: Publisher
): HttpRoutes[IO] = HttpRoutes.of[IO]:
  case request @ POST -> Root / "orders" =>
    for
      input <- request.as[CreateOrderRequest]
      tenant <- IO.pure(request.headers.get(ci"X-Tenant").get.head.value)
      existing <- service.findByKey(input.requestId)
      response <- existing match
        case Some(order) => Ok(order)
        case None =>
          for
            order <- service.create(tenant, input)
            _ <- IO(publisher.publish(order))
            response <- Created(order)
          yield response
    yield response

generated code is illustrative, not from any one model

Open in playground
Report an error