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