packages feed

neptune-backend-0.1.1: lib/Neptune/Utils.hs

{-# LANGUAGE ViewPatterns #-}
module Neptune.Utils where

import qualified Data.ByteString.Lazy.Char8 as BSL
import qualified Network.HTTP.Client        as NH
import           RIO

import           Neptune.Backend.Client

handleMimeError :: (Monad m, HasCallStack) => MimeResult a -> m a
handleMimeError (mimeResult -> Left e)  = let err_msg = mimeError e
                                              response = NH.responseBody $ mimeErrorResponse e
                                           in error (mimeError e ++ " " ++ BSL.unpack response)
handleMimeError (mimeResult -> Right r) = return r