packages feed

cachix-0.7.0: src/Cachix/Client/Servant.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -O0 #-}

-- TODO https://github.com/haskell-servant/servant/issues/986

module Cachix.Client.Servant
  ( isErr,
    cachixClient,
    deployClient
  )
where

import qualified Cachix.API
import Network.HTTP.Types (Status)
import Protolude
import Servant.API.Generic
import Servant.Auth.Client ()
import Cachix.Types.ContentTypes ()
import qualified Servant.Client
import Servant.Client.Generic (AsClientT)
import Servant.Client.Streaming
import qualified Cachix.API.Deploy as Cachix.Deploy.API
import Servant.Conduit ()

isErr :: ClientError -> Status -> Bool
isErr (Servant.Client.FailureResponse _ resp) status
  | Servant.Client.responseStatusCode resp == status = True
isErr _ _ = False

cachixClient :: Cachix.API.BinaryCacheAPI (AsClientT ClientM)
cachixClient = fromServant $ client Cachix.API.api

deployClient :: Cachix.Deploy.API.DeployAPI (AsClientT ClientM)
deployClient = fromServant $ client Cachix.Deploy.API.api