-- | 'Strive.Actions.Uploads' module Strive.Options.Uploads ( UploadActivityOptions (..) ) where import Data.Default (Default, def) import Network.HTTP.Types (QueryLike, toQuery) import Strive.Enums (ActivityType) -- | 'Strive.Actions.uploadActivity' data UploadActivityOptions = UploadActivityOptions { uploadActivityOptions_activityType :: Maybe ActivityType , uploadActivityOptions_name :: Maybe String , uploadActivityOptions_description :: Maybe String , uploadActivityOptions_private :: Bool , uploadActivityOptions_trainer :: Bool , uploadActivityOptions_externalId :: Maybe String } deriving Show instance Default UploadActivityOptions where def = UploadActivityOptions { uploadActivityOptions_activityType = Nothing , uploadActivityOptions_name = Nothing , uploadActivityOptions_description = Nothing , uploadActivityOptions_private = False , uploadActivityOptions_trainer = False , uploadActivityOptions_externalId = Nothing } instance QueryLike UploadActivityOptions where toQuery options = toQuery [ ("activity_type", fmap show (uploadActivityOptions_activityType options)) , ("name", uploadActivityOptions_name options) , ("description", uploadActivityOptions_description options) , ("private", Just (show (fromEnum (uploadActivityOptions_private options)))) , ("trainer", Just (show (fromEnum (uploadActivityOptions_trainer options)))) , ("external_id", uploadActivityOptions_externalId options) ]