45 lines
1.3 KiB
Haskell
45 lines
1.3 KiB
Haskell
module Handler.Course.News.Delete
|
|
( getCNDeleteR, postCNDeleteR
|
|
) where
|
|
|
|
import Import
|
|
import Handler.Utils.Delete
|
|
|
|
import qualified Data.Set as Set
|
|
|
|
|
|
getCNDeleteR, postCNDeleteR :: TermId -> SchoolId -> CourseShorthand -> CryptoUUIDCourseNews -> Handler Html
|
|
getCNDeleteR = postCNDeleteR
|
|
postCNDeleteR tid ssh csh cID = do
|
|
nId <- decrypt cID
|
|
|
|
let
|
|
drRecords :: Set (Key CourseNews)
|
|
drRecords = Set.singleton nId
|
|
|
|
drGetInfo = return
|
|
drUnjoin = id
|
|
|
|
drRenderRecord :: Entity CourseNews -> DB Widget
|
|
drRenderRecord (Entity _ CourseNews{..})
|
|
= return . fromMaybe (toWidget courseNewsContent) $ asum
|
|
[ toWidget <$> courseNewsTitle
|
|
, toWidget <$> courseNewsSummary
|
|
]
|
|
|
|
drRecordConfirmString :: Entity CourseNews -> DB Text
|
|
drRecordConfirmString _ = return ""
|
|
|
|
drCaption, drSuccessMessage :: SomeMessage UniWorX
|
|
drCaption = SomeMessage MsgCourseNewsDeleteQuestion
|
|
drSuccessMessage = SomeMessage MsgCourseNewsDeleted
|
|
|
|
drAbort, drSuccess :: SomeRoute UniWorX
|
|
drAbort = SomeRoute $ CourseR tid ssh csh CShowR :#: [st|news-#{toPathPiece cID}|]
|
|
drSuccess = SomeRoute $ CourseR tid ssh csh CShowR
|
|
|
|
drDelete :: forall a. CourseNewsId -> DB a -> DB a
|
|
drDelete _ = id
|
|
|
|
deleteR DeleteRoute{..}
|