{- Copyright 2016 Joey Hess - - Licensed under the GNU AGPL version 3 or higher. -} module HTTP.Client where import HTTP import Types import Types.Storage import Servant.API import Servant.Client import Data.Proxy import Network.HTTP.Client (Manager) apiVersion :: Manager -> BaseUrl -> ClientM APIVersion motd :: Manager -> BaseUrl -> ClientM Motd getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement StorableObject) putObject :: StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement StoreResult) countObjects :: Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (ProofOfWorkRequirement CountResult) apiVersion :<|> motd :<|> getObject :<|> putObject :<|> countObjects = client (Proxy :: Proxy HttpAPI)