module Model.Release.SQL
( releaseRow
, insertRelease
, updateRelease
, deleteRelease
) where
import qualified Language.Haskell.TH as TH
import Model.SQL.Select
import Model.Audit.SQL
import Model.Slot.SQL
releaseRow :: Selector
releaseRow = selectColumn "slot_release" "release"
releaseSets :: String
-> [(String, String)]
releaseSets o =
[ ("release", "${" ++ o ++ "}")
]
insertRelease :: TH.Name
-> TH.Name
-> TH.Name
-> TH.ExpQ
insertRelease ident s c = auditInsert ident "slot_release"
(slotKeys (nameRef s) ++ releaseSets (nameRef c))
Nothing
updateRelease :: TH.Name
-> TH.Name
-> TH.Name
-> TH.ExpQ
updateRelease ident s c = auditUpdate ident "slot_release"
(releaseSets (nameRef c))
(whereEq $ slotKeys (nameRef s))
Nothing
deleteRelease :: TH.Name
-> TH.Name
-> TH.ExpQ
deleteRelease ident o = auditDelete ident "slot_release"
("container = ${containerId $ containerRow $ slotContainer " ++ os ++ "} AND segment <@ ${slotSegment " ++ os ++ "}")
Nothing
where os = nameRef o