module Bio.MMTF
( module Bio.MMTF.Type
, decode
, fetch
) where
import Bio.MMTF.MessagePack ()
import Bio.MMTF.Type
import Data.ByteString.Lazy (ByteString)
import Data.MessagePack (unpack)
import Data.Monoid ((<>))
import Data.String (IsString (..))
import Control.Monad.IO.Class (MonadIO)
import Network.HTTP.Simple (httpLBS, getResponseBody)
decode :: Monad m => ByteString -> m MMTF
decode = unpack
fetch :: MonadIO m => String -> m MMTF
fetch pdbid = do let url = fromString $ "https://mmtf.rcsb.org/v1.0/full/" <> pdbid
resp <- httpLBS url
decode (getResponseBody resp)