Auctions index and CORS filter
This commit is contained in:
@@ -20,6 +20,13 @@ class AuctionsController @Inject()(val controllerComponents: ControllerComponent
|
|||||||
authenticatedAction: AuthenticatedAction,
|
authenticatedAction: AuthenticatedAction,
|
||||||
val auctionPublisher: ActorRef[AuctionPublisher.Command],
|
val auctionPublisher: ActorRef[AuctionPublisher.Command],
|
||||||
implicit val ec: ExecutionContext) extends BaseController {
|
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 =>
|
def create = authenticatedAction.async(parse.json) { implicit request =>
|
||||||
val auctionCreateDataResult = request.body.validate[AuctionCreateData]
|
val auctionCreateDataResult = request.body.validate[AuctionCreateData]
|
||||||
auctionCreateDataResult.fold(
|
auctionCreateDataResult.fold(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class LoggingFilter @Inject()(implicit val mat: Materializer, ec: ExecutionConte
|
|||||||
val endTime = System.currentTimeMillis()
|
val endTime = System.currentTimeMillis()
|
||||||
val requestTime = endTime - startTime
|
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
|
result
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package dao
|
|||||||
|
|
||||||
import models.{Auction, AuctionStatus}
|
import models.{Auction, AuctionStatus}
|
||||||
import schemas.Auctions
|
import schemas.Auctions
|
||||||
import schemas.auctionStatusColumnType
|
import schemas.given
|
||||||
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
|
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
|
||||||
import slick.jdbc.PostgresProfile
|
import slick.jdbc.PostgresProfile
|
||||||
import slick.jdbc.PostgresProfile.api.*
|
import slick.jdbc.PostgresProfile.api.*
|
||||||
@@ -15,6 +15,16 @@ import scala.util.Random
|
|||||||
class AuctionsDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvider)(implicit val ec: ExecutionContext)
|
class AuctionsDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvider)(implicit val ec: ExecutionContext)
|
||||||
extends HasDatabaseConfigProvider[PostgresProfile] {
|
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] = {
|
def create(name: String, startingPrice: BigDecimal, author: models.User): Future[Auction] = {
|
||||||
val auction = Auction(
|
val auction = Auction(
|
||||||
id = None, name = name,
|
id = None, name = name,
|
||||||
|
|||||||
@@ -2,9 +2,13 @@
|
|||||||
|
|
||||||
play.http.filters=controllers.filters.Filters
|
play.http.filters=controllers.filters.Filters
|
||||||
|
|
||||||
|
play.filters.enabled += "play.filters.cors.CORSFilter"
|
||||||
play.filters.csrf.header.bypassHeaders {
|
play.filters.csrf.header.bypassHeaders {
|
||||||
X-Requested-With = "*"
|
X-Requested-With = "*"
|
||||||
}
|
}
|
||||||
|
play.filters.cors {
|
||||||
|
allowedOrigins = ["http://localhost:4321"]
|
||||||
|
}
|
||||||
|
|
||||||
play.modules.enabled += "mqttClient.Module"
|
play.modules.enabled += "mqttClient.Module"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user