yam-0.7: src/Yam/Server/Refresh.hs
module Yam.Server.Refresh where
import Data.Text (Text, pack)
import Salak
import Servant
import Yam.App
import Yam.Logger
import Yam.Prelude
type RefreshEndpoint = "refresh" :> Post '[PlainText] Text
refreshEndpoint :: (HasSalaks cxt, HasLogger cxt, MonadIO m) => Bool -> AppT cxt m Text
refreshEndpoint True = do
io <- askReload
ReloadResult{..} <- liftIO io
if hasError
then throwS err400 $ showMsg msgs
else return $ showMsg msgs
refreshEndpoint _ = throwS err401 "Refresh not allowed"
showMsg :: [String] -> Text
showMsg = pack . unlines