1 {-# LANGUAGE OverloadedStrings #-} 2 module Databrary.Controller.Citation 3 ( getCitationHandler 4 ) where 5 6 import Databrary.Has (focusIO) 7 import qualified Databrary.JSON as JSON 8 import Databrary.HTTP.Form.Deform 9 import Databrary.Action 10 import Databrary.Controller.Form 11 import Databrary.Model.Citation.CrossRef 12 13 getCitationHandler :: Action -- TODO: GET only 14 getCitationHandler = withoutAuth $ do 15 url <- runForm Nothing $ "url" .:> deform 16 cite <- maybeAction =<< focusIO (lookupCitation url) 17 return $ okResponse [] $ JSON.toEncoding cite