Refactored Auctions index

This commit is contained in:
2026-09-09 22:42:01 +03:00
parent eadf793882
commit 2754c86c63
2 changed files with 11 additions and 20 deletions
+7 -9
View File
@@ -3,13 +3,13 @@ package controllers
import actors.auctions.AuctionPublisher
import controllers.authentication.AuthenticatedAction
import dao.{AuctionsDAO, AuthTokensDAO}
import models.Auction
import models.AuctionStatus.Ready
import models.{Auction, User}
import org.apache.pekko.actor.typed.ActorRef
import play.api.libs.functional.syntax.toFunctionalBuilderOps
import play.api.libs.json.{JsError, JsPath, JsValue, Json, Reads, Writes}
import play.api.libs.json.*
import play.api.mvc.{BaseController, ControllerComponents}
import java.security.SecureRandom
import javax.inject.{Inject, Singleton}
import scala.concurrent.{ExecutionContext, Future}
@@ -20,7 +20,7 @@ class AuctionsController @Inject()(val controllerComponents: ControllerComponent
authenticatedAction: AuthenticatedAction,
val auctionPublisher: ActorRef[AuctionPublisher.Command],
implicit val ec: ExecutionContext) extends BaseController {
def index = authenticatedAction.async { implicit request =>
def index = authenticatedAction.async { request =>
for {
auctions <- auctionsDAO.list_available(request.user)
json = Json.toJson(auctions)
@@ -35,15 +35,13 @@ class AuctionsController @Inject()(val controllerComponents: ControllerComponent
for {
auction <- auctionsDAO.create(auctionCreateData.name, auctionCreateData.startingPrice, request.user)
json = Json.toJson(auction)
response = Created(json)
_ = auctionPublisher ! AuctionPublisher.Publish(auction, request.user)
} yield response
} yield Created(json)
}
)
}
private case class AuctionCreateData(name: String, startingPrice: BigDecimal)
private implicit val auctionCreateDataReads: Reads[AuctionCreateData] = (
(JsPath \ "name").read[String] and (JsPath \ "starting_price").read[BigDecimal]
)(AuctionCreateData.apply)
private given Reads[AuctionCreateData] = Json.reads[AuctionCreateData]
}