module Web.Controller.Requirements where import Web.Types import Web.View.Requirements.Index import Web.View.Requirements.Show import Generated.Types import IHP.Prelude import IHP.ControllerPrelude instance Controller RequirementsController where beforeAction = ensureIsUser action RequirementsAction = do requirements <- query @Requirement |> orderByDesc #createdAt |> fetch candidates <- query @RequirementCandidate |> fetch render IndexView { requirements, candidates } action ShowRequirementAction { requirementId } = do requirement <- fetch requirementId candidate <- fetch requirement.sourceCandidateId widget <- fetch candidate.sourceWidgetId mDecision <- query @DecisionRecord |> filterWhere (#requirementId, Just requirementId) |> fetchOneOrNothing render ShowView { requirement, candidate, widget, mDecision }