ipfs-1.2.0.0: library/Network/IPFS/Client/Streaming/Pin.hs
module Network.IPFS.Client.Streaming.Pin
( PinComplete
, PinStatus (..)
) where
import Servant.API
import Network.IPFS.Prelude
import Network.IPFS.CID.Types
import qualified Network.IPFS.Client.Param as Param
type PinComplete
= "api"
:> "v0"
:> "pin"
:> "add"
:> Param.CID'
:> QueryParam "progress" Bool
:> StreamPost NewlineFraming JSON (SourceIO PinStatus)
data PinStatus = PinStatus
{ pins :: [CID]
, progress :: Maybe Natural
}
deriving (Eq, Show)
instance Display PinStatus where
display status = displayShow status
instance FromJSON PinStatus where
parseJSON = withObject "IPFS.PinStatus" \obj -> do
pins <- obj .:? "Pins" .!= []
progress <- obj .:? "Progress"
return PinStatus {..}