packages feed

blockfrost-client-core 0.1.0.0 → 0.2.0.0

raw patch · 4 files changed

+38/−4 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Blockfrost.Client.UserAgent: instance Servant.Client.Core.HasClient.HasClient m api => Servant.Client.Core.HasClient.HasClient m (Blockfrost.Util.UserAgent.UserAgent Servant.API.Sub.:> api)

Files

CHANGELOG.md view
@@ -1,4 +1,9 @@-# Version [0.1.0.0](https://github.com/blockfrost/blockfrost-haskell/compare/initial...0.1.0.0) (2021-09-14)+# Version [0.2.0.0](https://github.com/blockfrost/blockfrost-haskell/compare/v0.1.0.0...v0.2.0.0) (2021-10-29)++* Dropped `Alonzo` environment+* Switched category to `Cardano`++# Version [0.1.0.0](https://github.com/blockfrost/blockfrost-haskell/compare/initial...v0.1.0.0) (2021-09-14)  * Initial release 
blockfrost-client-core.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.2 name:                blockfrost-client-core-version:             0.1.0.0+version:             0.2.0.0 synopsis:            blockfrost.io common client definitions / instances description:         HasClient for our auth homepage:            https://github.com/blockfrost/blockfrost-haskell@@ -9,7 +9,7 @@ author:              blockfrost.io maintainer:          srk@48.io copyright:           2021 blockfrost.io-category:            Web+category:            Cardano build-type:          Simple  extra-source-files:@@ -42,6 +42,7 @@                       , Blockfrost.Client.Pagination                       , Blockfrost.Client.Sorting                       , Blockfrost.Client.Tag+                      , Blockfrost.Client.UserAgent    build-depends:       base >= 4.7 && < 5                       , blockfrost-api                       , aeson
src/Blockfrost/Client/Core.hs view
@@ -28,6 +28,7 @@ import Blockfrost.Client.Pagination import Blockfrost.Client.Sorting import Blockfrost.Client.Tag ()+import Blockfrost.Client.UserAgent () import Blockfrost.Types.ApiError import Data.Aeson (eitherDecode) import Data.Default (Default (def))@@ -62,7 +63,6 @@ baseUrlByEnv e         = maybe (error "absurd") buildUrl (subdomainByEnv e)  subdomainByEnv :: Env -> Maybe String-subdomainByEnv Alonzo    = pure "cardano-alonzo" subdomainByEnv Ipfs      = pure "ipfs" subdomainByEnv Mainnet   = pure "cardano-mainnet" subdomainByEnv Testnet   = pure "cardano-testnet"
+ src/Blockfrost/Client/UserAgent.hs view
@@ -0,0 +1,28 @@+-- | Blockfrost client version via user agent header++{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE OverloadedStrings #-}++module Blockfrost.Client.UserAgent () where++import Blockfrost.Util.UserAgent+import Data.CaseInsensitive (mk)+import Data.Proxy (Proxy (..))+import Data.Sequence ((<|))+import Servant.API ((:>))+import Servant.Client.Core (Client, HasClient (..), requestHeaders)++instance {-# OVERLAPS #-} (HasClient m api) => HasClient m (UserAgent :> api) where+  type Client m (UserAgent :> api) = Client m api++  clientWithRoute m _ req+    = clientWithRoute m (Proxy :: Proxy api)+    $ req { requestHeaders = (mk "User-Agent", userAgent) <| requestHeaders req  }++  hoistClientMonad pm _ nt = hoistClientMonad pm (Proxy :: Proxy api) nt