Scala-Play-Slick-Demo/app/controllers/HomeController.scala

59 lines
1.4 KiB
Scala
Raw Normal View History

2020-05-16 10:10:23 +00:00
package controllers
import javax.inject.{Inject, Singleton}
import com.example.user.UserDAO
import play.api.mvc._
import scala.concurrent.ExecutionContext
import com.example.user.CarDAO
import com.example.services.LibraryService
import play.api.libs.json.Json
import com.example.services.TaskLibraryService
case class UserForm(name: String)
object UserForm {
implicit val userFormFormat = Json.format[UserForm]
}
2020-05-16 10:10:23 +00:00
@Singleton
2020-05-17 18:00:24 +00:00
class HomeController @Inject() (
userDAO: UserDAO,
carDAO: CarDAO,
libraryService: LibraryService,
taskLibraryService: TaskLibraryService,
2020-05-17 18:00:24 +00:00
cc: ControllerComponents
)(implicit ec: ExecutionContext)
extends AbstractController(cc) {
2020-05-16 10:10:23 +00:00
def index = Action.async {
2020-05-17 18:00:24 +00:00
userDAO.all.map { users => Ok(views.html.index(users)) }
2020-05-16 10:10:23 +00:00
}
def cars = Action.async {
2020-05-17 18:00:24 +00:00
carDAO.all.map { cars => Ok(views.html.cars(cars)) }
2020-05-16 10:10:23 +00:00
}
2020-05-17 18:00:24 +00:00
def book = Action.async {
2020-05-16 10:10:23 +00:00
// libraryService.findBookById(1).map(e => Ok(Json.toJson(e)))
// libraryService.insertBookAndAuthor(Book("new book"), Author(2, "Some retard"))
for {
maybeBook <- libraryService.findBookById(1)
} yield (Ok(Json.toJson(maybeBook)))
}
def authors(bookId: Long) = Action.async {
libraryService
.getAuthorsForBook(bookId)
.map(t => {
Ok(Json.toJson(t))
})
}
def user = Action {
Ok(Json.toJson(UserForm("hello")))
2020-05-17 18:00:24 +00:00
}
2020-05-16 10:10:23 +00:00
}