-- | module Strive.Actions.Uploads ( uploadActivity , getUpload ) where import Data.ByteString (ByteString) import Network.HTTP.Conduit (RequestBody (RequestBodyBS), requestBody) import Network.HTTP.Types (Query, methodPost, toQuery) import Strive.Client (Client) import Strive.Internal.HTTP (buildRequest, decodeValue, get, performRequest) import Strive.Options (UploadActivityOptions) import Strive.Types (UploadStatus) -- | uploadActivity :: Client -> ByteString -> String -> UploadActivityOptions -> IO (Either String UploadStatus) uploadActivity client body dataType options = do initialRequest <- buildRequest methodPost client resource query let request = initialRequest { requestBody = RequestBodyBS body } response <- performRequest client request return (decodeValue response) where resource = "api/v3/uploads" query = toQuery [ ("data_type", dataType) ] ++ toQuery options -- | getUpload :: Client -> Integer -> IO (Either String UploadStatus) getUpload client uploadId = get client resource query where resource = "api/v3/uploads/" ++ show uploadId query = [] :: Query