{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}

module Cachix.Client.Servant
  ( AsClient
  , isErr
  ) where

import Protolude
import Network.HTTP.Types (Status)
import Servant.Client
import Servant.Generic

-- TODO: servant-generic-client https://github.com/chpatrick/servant-generic/issues/10
data AsClient
type instance AsClient :- api = Client ClientM api

isErr :: ServantError -> Status -> Bool
isErr (FailureResponse resp) status | responseStatusCode resp == status = True
isErr _ _ = False