Skip to content

Instantly share code, notes, and snippets.

@amitaibu
Created October 28, 2016 07:39
Show Gist options
  • Save amitaibu/6b43645692addceebff2548cf2add0b7 to your computer and use it in GitHub Desktop.
Save amitaibu/6b43645692addceebff2548cf2add0b7 to your computer and use it in GitHub Desktop.
getSlideR :: SlideId -> Handler Value
getSlideR slideId = do
slide <- runDB $ get404 slideId
let (Object slideHM) = entityIdToJSON (Entity slideId slide)
embedTextsBySlide <- runDB $ selectList [EmbedTextSlide ==. slideId] [] :: Handler [Entity EmbedText]
embedImagesBySlide <- runDB $ selectList [EmbedImageSlide ==. slideId] [] :: Handler [Entity EmbedImage]
let embedTextVector = V.fromList [entityIdToJSON (Entity k r) | Entity k r <- embedTextsBySlide]
let embedImageVector = V.fromList [entityIdToJSON (Entity k r) | Entity k r <- embedImagesBySlide]
let embeds = Array $ embedTextVector <> embedImageVector
-- @todo: Sort the lists by "delta"
let slideWitheEmbeds = HM.insert "embeds" embeds slideHM
return $ object ["data" .= slideWitheEmbeds]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment