Auctions index and CORS filter
This commit is contained in:
@@ -20,6 +20,13 @@ 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 =>
|
||||
for {
|
||||
auctions <- auctionsDAO.list_available(request.user)
|
||||
json = Json.toJson(auctions)
|
||||
} yield Ok(json)
|
||||
}
|
||||
|
||||
def create = authenticatedAction.async(parse.json) { implicit request =>
|
||||
val auctionCreateDataResult = request.body.validate[AuctionCreateData]
|
||||
auctionCreateDataResult.fold(
|
||||
|
||||
@@ -17,7 +17,7 @@ class LoggingFilter @Inject()(implicit val mat: Materializer, ec: ExecutionConte
|
||||
val endTime = System.currentTimeMillis()
|
||||
val requestTime = endTime - startTime
|
||||
|
||||
logger.info(s"${requestHeader.method} ${requestHeader.uri} ${result.header.status} $requestTime")
|
||||
logger.info(s"${requestHeader.method} ${requestHeader.uri} ${result.header.status} ${requestTime}ms")
|
||||
|
||||
result
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package dao
|
||||
|
||||
import models.{Auction, AuctionStatus}
|
||||
import schemas.Auctions
|
||||
import schemas.auctionStatusColumnType
|
||||
import schemas.given
|
||||
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
|
||||
import slick.jdbc.PostgresProfile
|
||||
import slick.jdbc.PostgresProfile.api.*
|
||||
@@ -15,6 +15,16 @@ import scala.util.Random
|
||||
class AuctionsDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvider)(implicit val ec: ExecutionContext)
|
||||
extends HasDatabaseConfigProvider[PostgresProfile] {
|
||||
|
||||
def list_available(user: models.User): Future[Seq[Auction]] = {
|
||||
db.run {
|
||||
Auctions.filter(row => (row.status === AuctionStatus.Ready) && (row.authorId =!= user.id.get)).result
|
||||
}
|
||||
}
|
||||
|
||||
def list_created_by(user: models.User): Future[Seq[Auction]] = {
|
||||
db.run(Auctions.filter(_.authorId === user.id).result)
|
||||
}
|
||||
|
||||
def create(name: String, startingPrice: BigDecimal, author: models.User): Future[Auction] = {
|
||||
val auction = Auction(
|
||||
id = None, name = name,
|
||||
|
||||
@@ -2,9 +2,13 @@
|
||||
|
||||
play.http.filters=controllers.filters.Filters
|
||||
|
||||
play.filters.enabled += "play.filters.cors.CORSFilter"
|
||||
play.filters.csrf.header.bypassHeaders {
|
||||
X-Requested-With = "*"
|
||||
}
|
||||
play.filters.cors {
|
||||
allowedOrigins = ["http://localhost:4321"]
|
||||
}
|
||||
|
||||
play.modules.enabled += "mqttClient.Module"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user