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 +6/−1
- blockfrost-client-core.cabal +3/−2
- src/Blockfrost/Client/Core.hs +1/−1
- src/Blockfrost/Client/UserAgent.hs +28/−0
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