@@ -21,7 +21,7 @@ import Affjax.ResponseFormat (string) as Affjax.ResponseFormat
2121import Affjax.StatusCode (StatusCode (StatusCode))
2222import Affjax.StatusCode as Affjax.StatusCode
2323import Cardano.Provider.Error
24- ( ClientError (ClientHttpError, ClientHttpResponseError)
24+ ( ClientError (ClientHttpError, ClientHttpResponseError, ClientDecodeJsonError )
2525 , ServiceError (ServiceOtherError)
2626 )
2727import Cardano.Provider.TxEvaluation as Provider
@@ -33,13 +33,14 @@ import Control.Monad.Error.Class (class MonadThrow, throwError)
3333import Control.Monad.Reader.Class (asks )
3434import Ctl.Internal.Affjax (request ) as Affjax
3535import Ctl.Internal.QueryM (QueryM )
36+ import Ctl.Internal.QueryM.HttpUtils (handleAffjaxResponseGeneric )
3637import Ctl.Internal.QueryM.Ogmios.Types
3738 ( class DecodeOgmios
3839 , AdditionalUtxoSet
3940 , ChainTipQR (CtChainPoint, CtChainOrigin)
4041 , CurrentEpoch
4142 , DelegationsAndRewardsR
42- , OgmiosDecodeError (ResultDecodingError, ClientErrorResponse)
43+ , OgmiosDecodeError (ClientErrorResponse)
4344 , OgmiosEraSummaries
4445 , OgmiosProtocolParameters
4546 , OgmiosSystemStart
@@ -137,7 +138,7 @@ ogmiosQueryNoParams
137138 . DecodeOgmios a
138139 => String
139140 -> QueryM (Either OgmiosDecodeError a )
140- ogmiosQueryNoParams method = do ogmiosQueryParams method {}
141+ ogmiosQueryNoParams = flip ogmiosQueryParams {}
141142
142143ogmiosQueryParams
143144 :: forall a p
@@ -201,17 +202,16 @@ handleAffjaxOgmiosResponse
201202 . DecodeOgmios result
202203 => Either Affjax.Error (Affjax.Response String )
203204 -> Either OgmiosDecodeError result
204- handleAffjaxOgmiosResponse (Left affjaxError) =
205- Left (ClientErrorResponse $ ClientHttpError affjaxError)
206- handleAffjaxOgmiosResponse
207- (Right { status: Affjax.StatusCode.StatusCode statusCode, body })
208- | statusCode < 200 || statusCode > 299 =
209- Left $ ClientErrorResponse $ ClientHttpResponseError (wrap statusCode) $
210- ServiceOtherError body
211- | otherwise = do
212- aeson <- lmap ResultDecodingError
213- $ parseJsonStringToAeson body
214- decodeOgmios aeson
205+ handleAffjaxOgmiosResponse =
206+ handleAffjaxResponseGeneric
207+ (ClientErrorResponse <<< ClientHttpError )
208+ ( \statusCode body -> ClientErrorResponse $ ClientHttpResponseError
209+ (wrap statusCode)
210+ (ServiceOtherError body)
211+ )
212+ (\body -> ClientErrorResponse <<< ClientDecodeJsonError body)
213+ parseJsonStringToAeson
214+ decodeOgmios
215215
216216ogmiosErrorHandler
217217 :: forall a m
0 commit comments