ipfs-1.1.2: library/Network/IPFS/Client/Pin.hs
module Network.IPFS.Client.Pin
( API
, AddAPI
, RemoveAPI
, Response (..)
) where
import Servant
import Network.IPFS.CID.Types
import qualified Network.IPFS.Client.Param as Param
import Network.IPFS.Prelude
type API = AddAPI :<|> RemoveAPI
type AddAPI
= "add"
:> Param.CID
:> Post '[JSON] Response
-- IPFS v0.5 disallows GET requests
-- https://docs.ipfs.io/recent-releases/go-ipfs-0-5/#breaking-changes-upgrade-notes
type RemoveAPI
= "rm"
:> Param.CID
:> Param.IsRecursive
:> Post '[JSON] Response
newtype Response = Response { cids :: [CID] }
deriving (Eq, Show)
instance FromJSON Response where
parseJSON = withObject "Pin Response" \obj ->
Response <$> obj .: "Pins"