43 lines
1.1 KiB
Haskell
43 lines
1.1 KiB
Haskell
|
|
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
|