inter-hub-haskell/Web/Controller/Requirements.hs

27 lines
956 B
Haskell
Raw Normal View History

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
import Web.Routes ()
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 }