Slide 51
Slide 51 text
Controller
import contract.usecase.PickLeaderUseCase
import domain.GroupId
import play.api.data._
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.mvc.{Action, Controller}
class GroupController @Inject()
(useCase: PickLeaderUseCase, presenter: PickedLeaderPresenter)
extends Controller {
val form: Form[GroupId] = ??? // ׂѪ
def pickLeader = Action.async { implicit request =>
form.bindFromRequest.fold(_ => Future.successful(BadRequest("…")),
(groupId: GroupId) =>
presenter.response(useCase.execute(groupId))
)
}
}
ೖྗσʔλ͔Βͷม͕
͜ͷॻ͖ํʹ͍ͭͯޙ΄Ͳ