trasa-client-0.3: src/Trasa/Client/Implicit.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
module Trasa.Client.Implicit where
import Trasa.Core
import Trasa.Core.Implicit
import Trasa.Client
client
:: ( HasMeta route
, HasCaptureEncoding (CaptureStrategy route)
, HasCaptureEncoding (QueryStrategy route)
, RequestBodyStrategy route ~ Many requestBodyStrat
, HasBodyEncoding requestBodyStrat
, ResponseBodyStrategy route ~ Many responseBodyStrat
, HasBodyDecoding responseBodyStrat
)
=> Config
-> Prepared route response
-> IO (Either TrasaErr response)
client = clientWith (transformMeta . meta)
where transformMeta = mapMeta captureEncoding captureEncoding (mapMany bodyEncoding) (mapMany bodyDecoding)