ihp-railiance-probe/Web/Controller/Probes.hs

43 lines
1.1 KiB
Haskell
Raw Normal View History

module Web.Controller.Probes where
import Web.Controller.Prelude
import Web.View.Probes.Index
import Web.View.Probes.New
import Web.View.Probes.Show
import Web.View.Probes.Edit
instance Controller ProbesController where
action ProbesAction = do
probes <- query @Probe |> fetch
render IndexView { .. }
action NewProbeAction = do
let probe = newRecord @Probe
render NewView { .. }
action ShowProbeAction { probeId } = do
probe <- fetch probeId
render ShowView { .. }
action CreateProbeAction = do
newRecord @Probe
|> fill @'["name"]
|> createRecord
redirectTo ProbesAction
action EditProbeAction { probeId } = do
probe <- fetch probeId
render EditView { .. }
action UpdateProbeAction { probeId } = do
probe <- fetch probeId
probe
|> fill @'["name"]
|> updateRecord
redirectTo ProbesAction
action DeleteProbeAction { probeId } = do
probe <- fetch probeId
deleteRecord probe
redirectTo ProbesAction