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