module Potoki.Hasql.Error.Hasql
where
import Potoki.Hasql.Prelude
import Potoki.Hasql.Error.Types
import qualified Hasql.Session as A
import qualified Hasql.Connection as C
import qualified Data.Text as B
connectionError :: C.ConnectionError -> Error
connectionError details =
ConnectionError (maybe "" lenientUtf8ByteStringText details)
sessionError :: A.QueryError -> Error
sessionError (A.QueryError sql params commandError) =
case commandError of
A.ClientError details ->
ConnectionError (maybe queryAndParamsRendering (flip mappend ("\n" <> queryAndParamsRendering) . lenientUtf8ByteStringText) details)
A.ResultError details ->
InteractionError (fromString (show details) <> "\n" <> queryAndParamsRendering)
where
queryAndParamsRendering =
"Query: " <> lenientUtf8ByteStringText sql <> "\n" <>
"Params: " <> B.intercalate ", " params