-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Haskell client for the Strava V3 API. -- @package strive @version 2.0.0 -- | Comments module Strive.Options.Comments -- | getActivityComments data GetActivityCommentsOptions GetActivityCommentsOptions :: Bool -> Integer -> Integer -> GetActivityCommentsOptions getActivityCommentsOptions_markdown :: GetActivityCommentsOptions -> Bool getActivityCommentsOptions_page :: GetActivityCommentsOptions -> Integer getActivityCommentsOptions_perPage :: GetActivityCommentsOptions -> Integer instance Show GetActivityCommentsOptions instance QueryLike GetActivityCommentsOptions instance Default GetActivityCommentsOptions -- | Authentication module Strive.Options.Authentication -- | buildAuthorizeUrl data BuildAuthorizeUrlOptions BuildAuthorizeUrlOptions :: Bool -> Bool -> Bool -> String -> BuildAuthorizeUrlOptions buildAuthorizeUrlOptions_approvalPrompt :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_privateScope :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_writeScope :: BuildAuthorizeUrlOptions -> Bool buildAuthorizeUrlOptions_state :: BuildAuthorizeUrlOptions -> String instance Show BuildAuthorizeUrlOptions instance QueryLike BuildAuthorizeUrlOptions instance Default BuildAuthorizeUrlOptions -- | Common options that apply to many endpoints. module Strive.Internal.Options -- | Options for paginating. data PaginationOptions PaginationOptions :: Integer -> Integer -> PaginationOptions paginationOptions_page :: PaginationOptions -> Integer paginationOptions_perPage :: PaginationOptions -> Integer instance Show PaginationOptions instance QueryLike PaginationOptions instance Default PaginationOptions -- | Clubs module Strive.Options.Clubs -- | getClubMembers type GetClubMembersOptions = PaginationOptions -- | getClubActivities type GetClubActivitiesOptions = PaginationOptions -- | Friends module Strive.Options.Friends -- | getCurrentFriends type GetCurrentFriendsOptions = PaginationOptions -- | getFriends type GetFriendsOptions = PaginationOptions -- | getCurrentFollowers type GetCurrentFollowersOptions = PaginationOptions -- | getFollowers type GetFollowersOptions = PaginationOptions -- | getCommonFriends type GetCommonFriendsOptions = PaginationOptions -- | Kudos module Strive.Options.Kudos -- | getActivityKudoers type GetActivityKudoersOptions = PaginationOptions -- | Helper functions for template Haskell, to avoid stage restrictions. module Strive.Internal.TH -- | Default FromJSON options. options :: Options -- | Generate lens classes and instances for a type. makeLenses :: String -> Q [Dec] -- | http://strava.github.io/api/v3/uploads/ module Strive.Types.Uploads -- | http://strava.github.io/api/v3/uploads/#attributes data UploadStatus UploadStatus :: Maybe Integer -> Maybe Text -> Maybe Text -> Integer -> Text -> UploadStatus uploadStatus_activityId :: UploadStatus -> Maybe Integer uploadStatus_error :: UploadStatus -> Maybe Text uploadStatus_externalId :: UploadStatus -> Maybe Text uploadStatus_id :: UploadStatus -> Integer uploadStatus_status :: UploadStatus -> Text instance FromJSON UploadStatus instance Show UploadStatus -- | Utility functions for making common actions easier. module Strive.Utilities -- | Modify an action's default options by listing changes to it. with :: Default a => [a -> a] -> a -- | Lenses for easily getting and setting values. module Strive.Lenses -- | A lens for a record. type Lens a b = Functor f => (b -> f b) -> a -> f a -- | Get a field from a record. get :: Lens a b -> a -> b -- | Set a field in a record. set :: Lens a b -> b -> a -> a -- | Update a field in a record update :: Lens a b -> (b -> b) -> a -> a -- | Types for choosing an option from a limited set. module Strive.Enums -- | An activity's type. data ActivityType AlpineSki :: ActivityType BackcountrySki :: ActivityType Canoeing :: ActivityType CrossCountrySkiing :: ActivityType Crossfit :: ActivityType Elliptical :: ActivityType Hike :: ActivityType IceSkate :: ActivityType InlineSkate :: ActivityType Kayaking :: ActivityType KiteSurf :: ActivityType NordicSki :: ActivityType Ride :: ActivityType RockClimbing :: ActivityType RollerSki :: ActivityType Rowing :: ActivityType Run :: ActivityType Snowboard :: ActivityType Snowshoe :: ActivityType StairStepper :: ActivityType StandUpPaddling :: ActivityType Surfing :: ActivityType Swim :: ActivityType Walk :: ActivityType WeightTraining :: ActivityType Windsurf :: ActivityType Workout :: ActivityType Yoga :: ActivityType -- | An activity zone's type. data ActivityZoneType HeartrateZone :: ActivityZoneType PowerZone :: ActivityZoneType -- | An athlete's age group. data AgeGroup Ages0To24 :: AgeGroup Ages25To34 :: AgeGroup Ages35To44 :: AgeGroup Ages45To54 :: AgeGroup Ages55To64 :: AgeGroup Ages65Plus :: AgeGroup -- | A club's type. data ClubType CasualClub :: ClubType Company :: ClubType Other :: ClubType RacingTeam :: ClubType Shop :: ClubType -- | A bike's frame type. data FrameType CrossFrame :: FrameType MountainFrame :: FrameType RoadFrame :: FrameType TimeTrialFrame :: FrameType -- | An athlete's gender. data Gender Female :: Gender Male :: Gender -- | An athlete's measurement preference. data MeasurementPreference Feet :: MeasurementPreference Meters :: MeasurementPreference -- | A photo's type. data PhotoType InstagramPhoto :: PhotoType -- | A stream's resolution. data Resolution Low :: Resolution Medium :: Resolution High :: Resolution -- | A resource's state. data ResourceState Meta :: ResourceState Summary :: ResourceState Detailed :: ResourceState -- | A segment's activity type. data SegmentActivityType Riding :: SegmentActivityType Running :: SegmentActivityType -- | A series' type in a stream. data SeriesType Distance :: SeriesType Time :: SeriesType -- | A club's sport type. data SportType SportCycling :: SportType SportOther :: SportType SportRunning :: SportType SportTriathalon :: SportType -- | A stream's type. data StreamType AltitudeStream :: StreamType CadenceStream :: StreamType DistanceStream :: StreamType GradeSmoothStream :: StreamType HeartrateStream :: StreamType LatlngStream :: StreamType MovingStream :: StreamType TempStream :: StreamType TimeStream :: StreamType VelocitySmoothStream :: StreamType WattsStream :: StreamType -- | An athlete's weight class. data WeightClass Kilograms0To54 :: WeightClass Kilograms55To64 :: WeightClass Kilograms65To74 :: WeightClass Kilograms75To84 :: WeightClass Kilograms85To94 :: WeightClass Kilograms95Plus :: WeightClass Pounds0To124 :: WeightClass Pounds125To149 :: WeightClass Pounds150To164 :: WeightClass Pounds165To179 :: WeightClass Pounds180To199 :: WeightClass Pounds200Plus :: WeightClass instance Show ActivityType instance Show ActivityZoneType instance Show ClubType instance Show FrameType instance Show MeasurementPreference instance Show PhotoType instance Show ResourceState instance Show SportType instance Show WeightClass instance Show StreamType instance FromJSON SportType instance FromJSON SeriesType instance Show SeriesType instance Show SegmentActivityType instance FromJSON ResourceState instance FromJSON Resolution instance Show Resolution instance FromJSON PhotoType instance FromJSON MeasurementPreference instance FromJSON Gender instance Show Gender instance FromJSON FrameType instance FromJSON ClubType instance Show AgeGroup instance FromJSON ActivityZoneType instance FromJSON ActivityType -- | Activities module Strive.Options.Activities -- | CreateActivity data CreateActivityOptions CreateActivityOptions :: Maybe String -> Maybe Double -> CreateActivityOptions createActivityOptions_description :: CreateActivityOptions -> Maybe String createActivityOptions_distance :: CreateActivityOptions -> Maybe Double -- | GetActivity data GetActivityOptions GetActivityOptions :: Bool -> GetActivityOptions getActivityOptions_allEfforts :: GetActivityOptions -> Bool -- | UpdateActivity data UpdateActivityOptions UpdateActivityOptions :: Maybe String -> Maybe ActivityType -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe String -> Maybe String -> UpdateActivityOptions updateActivityOptions_name :: UpdateActivityOptions -> Maybe String updateActivityOptions_type :: UpdateActivityOptions -> Maybe ActivityType updateActivityOptions_private :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_commute :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_trainer :: UpdateActivityOptions -> Maybe Bool updateActivityOptions_gearId :: UpdateActivityOptions -> Maybe String updateActivityOptions_description :: UpdateActivityOptions -> Maybe String -- | getCurrentActivities data GetCurrentActivitiesOptions GetCurrentActivitiesOptions :: Maybe UTCTime -> Maybe UTCTime -> Integer -> Integer -> GetCurrentActivitiesOptions getCurrentActivitiesOptions_before :: GetCurrentActivitiesOptions -> Maybe UTCTime getCurrentActivitiesOptions_after :: GetCurrentActivitiesOptions -> Maybe UTCTime getCurrentActivitiesOptions_page :: GetCurrentActivitiesOptions -> Integer getCurrentActivitiesOptions_perPage :: GetCurrentActivitiesOptions -> Integer -- | getRelatedActivities type GetRelatedActivitiesOptions = PaginationOptions -- | getFeed type GetFeedOptions = PaginationOptions instance Show CreateActivityOptions instance Show GetActivityOptions instance Show UpdateActivityOptions instance Show GetCurrentActivitiesOptions instance QueryLike GetCurrentActivitiesOptions instance Default GetCurrentActivitiesOptions instance QueryLike UpdateActivityOptions instance Default UpdateActivityOptions instance QueryLike GetActivityOptions instance Default GetActivityOptions instance QueryLike CreateActivityOptions instance Default CreateActivityOptions -- | Athletes module Strive.Options.Athletes -- | updateCurrentAthlete data UpdateCurrentAthleteOptions UpdateCurrentAthleteOptions :: Maybe String -> Maybe String -> Maybe String -> Maybe Gender -> Maybe Double -> UpdateCurrentAthleteOptions updateCurrentAthleteOptions_city :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_state :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_country :: UpdateCurrentAthleteOptions -> Maybe String updateCurrentAthleteOptions_sex :: UpdateCurrentAthleteOptions -> Maybe Gender updateCurrentAthleteOptions_weight :: UpdateCurrentAthleteOptions -> Maybe Double -- | getAthleteCrs type GetAthleteCrsOptions = PaginationOptions instance Show UpdateCurrentAthleteOptions instance QueryLike UpdateCurrentAthleteOptions instance Default UpdateCurrentAthleteOptions -- | Segments module Strive.Options.Segments -- | getStarredSegments type GetStarredSegmentsOptions = PaginationOptions -- | getSegmentEfforts data GetSegmentEffortsOptions GetSegmentEffortsOptions :: Maybe Integer -> Maybe (UTCTime, UTCTime) -> Integer -> Integer -> GetSegmentEffortsOptions getSegmentEffortsOptions_athleteId :: GetSegmentEffortsOptions -> Maybe Integer getSegmentEffortsOptions_range :: GetSegmentEffortsOptions -> Maybe (UTCTime, UTCTime) getSegmentEffortsOptions_page :: GetSegmentEffortsOptions -> Integer getSegmentEffortsOptions_perPage :: GetSegmentEffortsOptions -> Integer -- | getSegmentLeaderboard data GetSegmentLeaderboardOptions GetSegmentLeaderboardOptions :: Maybe Gender -> Maybe AgeGroup -> Maybe WeightClass -> Maybe Bool -> Maybe Integer -> Maybe String -> Maybe Integer -> Integer -> Integer -> GetSegmentLeaderboardOptions getSegmentLeaderboardOptions_gender :: GetSegmentLeaderboardOptions -> Maybe Gender getSegmentLeaderboardOptions_ageGroup :: GetSegmentLeaderboardOptions -> Maybe AgeGroup getSegmentLeaderboardOptions_weightClass :: GetSegmentLeaderboardOptions -> Maybe WeightClass getSegmentLeaderboardOptions_following :: GetSegmentLeaderboardOptions -> Maybe Bool getSegmentLeaderboardOptions_clubId :: GetSegmentLeaderboardOptions -> Maybe Integer getSegmentLeaderboardOptions_dateRange :: GetSegmentLeaderboardOptions -> Maybe String getSegmentLeaderboardOptions_contextEntries :: GetSegmentLeaderboardOptions -> Maybe Integer getSegmentLeaderboardOptions_page :: GetSegmentLeaderboardOptions -> Integer getSegmentLeaderboardOptions_perPage :: GetSegmentLeaderboardOptions -> Integer -- | exploreSegments data ExploreSegmentsOptions ExploreSegmentsOptions :: SegmentActivityType -> Integer -> Integer -> ExploreSegmentsOptions exploreSegmentsOptions_activityType :: ExploreSegmentsOptions -> SegmentActivityType exploreSegmentsOptions_minCat :: ExploreSegmentsOptions -> Integer exploreSegmentsOptions_maxCat :: ExploreSegmentsOptions -> Integer instance Show GetSegmentEffortsOptions instance Show GetSegmentLeaderboardOptions instance Show ExploreSegmentsOptions instance QueryLike ExploreSegmentsOptions instance Default ExploreSegmentsOptions instance QueryLike GetSegmentLeaderboardOptions instance Default GetSegmentLeaderboardOptions instance QueryLike GetSegmentEffortsOptions instance Default GetSegmentEffortsOptions -- | Streams module Strive.Options.Streams -- | getStreams data GetStreamsOptions GetStreamsOptions :: Maybe Resolution -> SeriesType -> GetStreamsOptions getStreamsOptions_resolution :: GetStreamsOptions -> Maybe Resolution getStreamsOptions_seriesType :: GetStreamsOptions -> SeriesType instance Show GetStreamsOptions instance QueryLike GetStreamsOptions instance Default GetStreamsOptions -- | Uploads module Strive.Options.Uploads -- | uploadActivity data UploadActivityOptions UploadActivityOptions :: Maybe ActivityType -> Maybe String -> Maybe String -> Bool -> Bool -> Maybe String -> UploadActivityOptions uploadActivityOptions_activityType :: UploadActivityOptions -> Maybe ActivityType uploadActivityOptions_name :: UploadActivityOptions -> Maybe String uploadActivityOptions_description :: UploadActivityOptions -> Maybe String uploadActivityOptions_private :: UploadActivityOptions -> Bool uploadActivityOptions_trainer :: UploadActivityOptions -> Bool uploadActivityOptions_externalId :: UploadActivityOptions -> Maybe String instance Show UploadActivityOptions instance QueryLike UploadActivityOptions instance Default UploadActivityOptions -- | Optional parameters for actions. module Strive.Options -- | http://strava.github.io/api/v3/clubs/ module Strive.Types.Clubs -- | http://strava.github.io/api/v3/clubs/#detailed data ClubDetailed ClubDetailed :: Text -> ClubType -> Text -> Text -> Integer -> Integer -> Text -> Bool -> Text -> Text -> ResourceState -> SportType -> Text -> ClubDetailed clubDetailed_city :: ClubDetailed -> Text clubDetailed_clubType :: ClubDetailed -> ClubType clubDetailed_country :: ClubDetailed -> Text clubDetailed_description :: ClubDetailed -> Text clubDetailed_id :: ClubDetailed -> Integer clubDetailed_memberCount :: ClubDetailed -> Integer clubDetailed_name :: ClubDetailed -> Text clubDetailed_private :: ClubDetailed -> Bool clubDetailed_profile :: ClubDetailed -> Text clubDetailed_profileMedium :: ClubDetailed -> Text clubDetailed_resourceState :: ClubDetailed -> ResourceState clubDetailed_sportType :: ClubDetailed -> SportType clubDetailed_state :: ClubDetailed -> Text -- | http://strava.github.io/api/v3/clubs/#summary data ClubSummary ClubSummary :: Integer -> Text -> Text -> Text -> ResourceState -> ClubSummary clubSummary_id :: ClubSummary -> Integer clubSummary_name :: ClubSummary -> Text clubSummary_profile :: ClubSummary -> Text clubSummary_profileMedium :: ClubSummary -> Text clubSummary_resourceState :: ClubSummary -> ResourceState instance FromJSON ClubSummary instance Show ClubSummary instance FromJSON ClubDetailed instance Show ClubDetailed -- | http://strava.github.io/api/v3/gear/ module Strive.Types.Gear -- | http://strava.github.io/api/v3/gear/#detailed data GearDetailed GearDetailed :: Text -> Text -> Double -> Maybe FrameType -> Text -> Text -> Text -> Bool -> ResourceState -> GearDetailed gearDetailed_brandName :: GearDetailed -> Text gearDetailed_description :: GearDetailed -> Text gearDetailed_distance :: GearDetailed -> Double gearDetailed_frameType :: GearDetailed -> Maybe FrameType gearDetailed_id :: GearDetailed -> Text gearDetailed_modelName :: GearDetailed -> Text gearDetailed_name :: GearDetailed -> Text gearDetailed_primary :: GearDetailed -> Bool gearDetailed_resourceState :: GearDetailed -> ResourceState -- | http://strava.github.io/api/v3/gear/#summary data GearSummary GearSummary :: Double -> Text -> Text -> Bool -> ResourceState -> GearSummary gearSummary_distance :: GearSummary -> Double gearSummary_id :: GearSummary -> Text gearSummary_name :: GearSummary -> Text gearSummary_primary :: GearSummary -> Bool gearSummary_resourceState :: GearSummary -> ResourceState instance FromJSON GearSummary instance Show GearSummary instance FromJSON GearDetailed instance Show GearDetailed -- | http://strava.github.io/api/v3/athlete/ module Strive.Types.Athletes -- | http://strava.github.io/api/v3/athlete/#detailed data AthleteDetailed AthleteDetailed :: [GearSummary] -> Text -> [ClubSummary] -> Text -> UTCTime -> Text -> Text -> Text -> Maybe Text -> Integer -> Maybe Text -> Integer -> Maybe Integer -> Integer -> Text -> MeasurementPreference -> Integer -> Bool -> Text -> Text -> ResourceState -> Maybe Gender -> [GearSummary] -> Text -> UTCTime -> Maybe Double -> AthleteDetailed athleteDetailed_bikes :: AthleteDetailed -> [GearSummary] athleteDetailed_city :: AthleteDetailed -> Text athleteDetailed_clubs :: AthleteDetailed -> [ClubSummary] athleteDetailed_country :: AthleteDetailed -> Text athleteDetailed_createdAt :: AthleteDetailed -> UTCTime athleteDetailed_datePreference :: AthleteDetailed -> Text athleteDetailed_email :: AthleteDetailed -> Text athleteDetailed_firstname :: AthleteDetailed -> Text athleteDetailed_follower :: AthleteDetailed -> Maybe Text athleteDetailed_followerCount :: AthleteDetailed -> Integer athleteDetailed_friend :: AthleteDetailed -> Maybe Text athleteDetailed_friendCount :: AthleteDetailed -> Integer athleteDetailed_ftp :: AthleteDetailed -> Maybe Integer athleteDetailed_id :: AthleteDetailed -> Integer athleteDetailed_lastname :: AthleteDetailed -> Text athleteDetailed_measurementPreference :: AthleteDetailed -> MeasurementPreference athleteDetailed_mutualFriendCount :: AthleteDetailed -> Integer athleteDetailed_premium :: AthleteDetailed -> Bool athleteDetailed_profile :: AthleteDetailed -> Text athleteDetailed_profileMedium :: AthleteDetailed -> Text athleteDetailed_resourceState :: AthleteDetailed -> ResourceState athleteDetailed_sex :: AthleteDetailed -> Maybe Gender athleteDetailed_shoes :: AthleteDetailed -> [GearSummary] athleteDetailed_state :: AthleteDetailed -> Text athleteDetailed_updatedAt :: AthleteDetailed -> UTCTime athleteDetailed_weight :: AthleteDetailed -> Maybe Double -- | http://strava.github.io/api/v3/athlete/#summary data AthleteSummary AthleteSummary :: Maybe Text -> Maybe Text -> UTCTime -> Text -> Maybe Text -> Maybe Text -> Integer -> Text -> Bool -> Text -> Text -> ResourceState -> Maybe Gender -> Text -> UTCTime -> AthleteSummary athleteSummary_city :: AthleteSummary -> Maybe Text athleteSummary_country :: AthleteSummary -> Maybe Text athleteSummary_createdAt :: AthleteSummary -> UTCTime athleteSummary_firstname :: AthleteSummary -> Text athleteSummary_follower :: AthleteSummary -> Maybe Text athleteSummary_friend :: AthleteSummary -> Maybe Text athleteSummary_id :: AthleteSummary -> Integer athleteSummary_lastname :: AthleteSummary -> Text athleteSummary_premium :: AthleteSummary -> Bool athleteSummary_profile :: AthleteSummary -> Text athleteSummary_profileMedium :: AthleteSummary -> Text athleteSummary_resourceState :: AthleteSummary -> ResourceState athleteSummary_sex :: AthleteSummary -> Maybe Gender athleteSummary_state :: AthleteSummary -> Text athleteSummary_updatedAt :: AthleteSummary -> UTCTime -- | http://strava.github.io/api/v3/athlete/#meta data AthleteMeta AthleteMeta :: Integer -> ResourceState -> AthleteMeta athleteMeta_id :: AthleteMeta -> Integer athleteMeta_resourceState :: AthleteMeta -> ResourceState -- | http://strava.github.io/api/v3/athlete/#stats data ActivityTotals ActivityTotals :: Integer -> Double -> Double -> Double -> Double -> Double -> ActivityTotals activityTotals_count :: ActivityTotals -> Integer activityTotals_distance :: ActivityTotals -> Double activityTotals_movingTime :: ActivityTotals -> Double activityTotals_elapsedTime :: ActivityTotals -> Double activityTotals_elevationGain :: ActivityTotals -> Double activityTotals_achievementCount :: ActivityTotals -> Double -- | http://strava.github.io/api/v3/athlete/#stats data AthleteStats AthleteStats :: Double -> Double -> ActivityTotals -> ActivityTotals -> ActivityTotals -> ActivityTotals -> ActivityTotals -> ActivityTotals -> AthleteStats athleteStats_biggestRideDistance :: AthleteStats -> Double athleteStats_biggestClimbElevationGain :: AthleteStats -> Double athleteStats_recentRideTotals :: AthleteStats -> ActivityTotals athleteStats_recentRunTotals :: AthleteStats -> ActivityTotals athleteStats_ytdRideTotals :: AthleteStats -> ActivityTotals athleteStats_ytdRunTotals :: AthleteStats -> ActivityTotals athleteStats_allRideTotals :: AthleteStats -> ActivityTotals athleteStats_allRunTotals :: AthleteStats -> ActivityTotals instance FromJSON AthleteStats instance Show AthleteStats instance FromJSON ActivityTotals instance Show ActivityTotals instance FromJSON AthleteMeta instance Show AthleteMeta instance FromJSON AthleteSummary instance Show AthleteSummary instance FromJSON AthleteDetailed instance Show AthleteDetailed -- | http://strava.github.io/api/v3/oauth/ module Strive.Types.Authentication -- | http://strava.github.io/api/v3/oauth/#example-response data TokenExchangeResponse TokenExchangeResponse :: Text -> AthleteDetailed -> TokenExchangeResponse tokenExchangeResponse_accessToken :: TokenExchangeResponse -> Text tokenExchangeResponse_athlete :: TokenExchangeResponse -> AthleteDetailed -- | http://strava.github.io/api/v3/oauth/#example-response-1 data DeauthorizationResponse DeauthorizationResponse :: Text -> DeauthorizationResponse deauthorizationResponse_accessToken :: DeauthorizationResponse -> Text instance FromJSON DeauthorizationResponse instance Show DeauthorizationResponse instance FromJSON TokenExchangeResponse instance Show TokenExchangeResponse -- | http://strava.github.io/api/v3/comments/ module Strive.Types.Comments -- | -- http://strava.github.io/api/v3/comments/#summary-and-detailed-representation-attributes data CommentSummary CommentSummary :: Integer -> AthleteSummary -> UTCTime -> Integer -> ResourceState -> Text -> CommentSummary commentSummary_activityId :: CommentSummary -> Integer commentSummary_athlete :: CommentSummary -> AthleteSummary commentSummary_createdAt :: CommentSummary -> UTCTime commentSummary_id :: CommentSummary -> Integer commentSummary_resourceState :: CommentSummary -> ResourceState commentSummary_text :: CommentSummary -> Text instance FromJSON CommentSummary instance Show CommentSummary -- | http://strava.github.io/api/v3/photos/ module Strive.Types.Photos -- | -- http://strava.github.io/api/v3/photos/#summary-and-detailed-representation-attributes data PhotoSummary PhotoSummary :: Integer -> Text -> UTCTime -> Integer -> Maybe (Double, Double) -> Text -> ResourceState -> PhotoType -> Text -> UTCTime -> PhotoSummary photoSummary_activityId :: PhotoSummary -> Integer photoSummary_caption :: PhotoSummary -> Text photoSummary_createdAt :: PhotoSummary -> UTCTime photoSummary_id :: PhotoSummary -> Integer photoSummary_location :: PhotoSummary -> Maybe (Double, Double) photoSummary_ref :: PhotoSummary -> Text photoSummary_resourceState :: PhotoSummary -> ResourceState photoSummary_type :: PhotoSummary -> PhotoType photoSummary_uid :: PhotoSummary -> Text photoSummary_uploadedAt :: PhotoSummary -> UTCTime instance FromJSON PhotoSummary instance Show PhotoSummary -- | http://strava.github.io/api/#polylines module Strive.Types.Polylines -- | http://strava.github.io/api/#polylines newtype Polyline Polyline :: [(Double, Double)] -> Polyline unPolyline :: Polyline -> [(Double, Double)] -- | http://strava.github.io/api/v3/activities/#detailed data PolylineDetailed PolylineDetailed :: Text -> Polyline -> ResourceState -> Maybe Polyline -> PolylineDetailed polylineDetailed_id :: PolylineDetailed -> Text polylineDetailed_polyline :: PolylineDetailed -> Polyline polylineDetailed_resourceState :: PolylineDetailed -> ResourceState polylineDetailed_summaryPolyline :: PolylineDetailed -> Maybe Polyline -- | http://strava.github.io/api/v3/activities/#summary data PolylineSummary PolylineSummary :: Text -> ResourceState -> Maybe Polyline -> PolylineSummary polylineSummary_id :: PolylineSummary -> Text polylineSummary_resourceState :: PolylineSummary -> ResourceState polylineSummary_summaryPolyline :: PolylineSummary -> Maybe Polyline instance FromJSON PolylineSummary instance Show PolylineSummary instance FromJSON PolylineDetailed instance Show Polyline instance Show PolylineDetailed instance FromJSON Polyline -- | http://strava.github.io/api/v3/segments/ module Strive.Types.Segments -- | http://strava.github.io/api/v3/segments/#detailed data SegmentDetailed SegmentDetailed :: ActivityType -> Integer -> Double -> Text -> Integer -> Text -> UTCTime -> Double -> Integer -> Double -> Double -> Double -> (Double, Double) -> Double -> Bool -> Integer -> PolylineDetailed -> Double -> Text -> Bool -> ResourceState -> Integer -> Bool -> Double -> (Double, Double) -> Double -> Text -> Double -> UTCTime -> SegmentDetailed segmentDetailed_activityType :: SegmentDetailed -> ActivityType segmentDetailed_athleteCount :: SegmentDetailed -> Integer segmentDetailed_averageGrade :: SegmentDetailed -> Double segmentDetailed_city :: SegmentDetailed -> Text segmentDetailed_climbCategory :: SegmentDetailed -> Integer segmentDetailed_country :: SegmentDetailed -> Text segmentDetailed_createdAt :: SegmentDetailed -> UTCTime segmentDetailed_distance :: SegmentDetailed -> Double segmentDetailed_effortCount :: SegmentDetailed -> Integer segmentDetailed_elevationHigh :: SegmentDetailed -> Double segmentDetailed_elevationLow :: SegmentDetailed -> Double segmentDetailed_endLatitude :: SegmentDetailed -> Double segmentDetailed_endLatlng :: SegmentDetailed -> (Double, Double) segmentDetailed_endLongitude :: SegmentDetailed -> Double segmentDetailed_hazardous :: SegmentDetailed -> Bool segmentDetailed_id :: SegmentDetailed -> Integer segmentDetailed_map :: SegmentDetailed -> PolylineDetailed segmentDetailed_maximumGrade :: SegmentDetailed -> Double segmentDetailed_name :: SegmentDetailed -> Text segmentDetailed_private :: SegmentDetailed -> Bool segmentDetailed_resourceState :: SegmentDetailed -> ResourceState segmentDetailed_starCount :: SegmentDetailed -> Integer segmentDetailed_starred :: SegmentDetailed -> Bool segmentDetailed_startLatitude :: SegmentDetailed -> Double segmentDetailed_startLatlng :: SegmentDetailed -> (Double, Double) segmentDetailed_startLongitude :: SegmentDetailed -> Double segmentDetailed_state :: SegmentDetailed -> Text segmentDetailed_totalElevationGain :: SegmentDetailed -> Double segmentDetailed_updatedAt :: SegmentDetailed -> UTCTime -- | http://strava.github.io/api/v3/segments/#summary data SegmentSummary SegmentSummary :: ActivityType -> Double -> Text -> Integer -> Text -> Double -> Double -> Double -> Double -> (Double, Double) -> Double -> Integer -> Double -> Text -> Bool -> ResourceState -> Bool -> Double -> (Double, Double) -> Double -> Text -> SegmentSummary segmentSummary_activityType :: SegmentSummary -> ActivityType segmentSummary_averageGrade :: SegmentSummary -> Double segmentSummary_city :: SegmentSummary -> Text segmentSummary_climbCategory :: SegmentSummary -> Integer segmentSummary_country :: SegmentSummary -> Text segmentSummary_distance :: SegmentSummary -> Double segmentSummary_elevationHigh :: SegmentSummary -> Double segmentSummary_elevationLow :: SegmentSummary -> Double segmentSummary_endLatitude :: SegmentSummary -> Double segmentSummary_endLatlng :: SegmentSummary -> (Double, Double) segmentSummary_endLongitude :: SegmentSummary -> Double segmentSummary_id :: SegmentSummary -> Integer segmentSummary_maximumGrade :: SegmentSummary -> Double segmentSummary_name :: SegmentSummary -> Text segmentSummary_private :: SegmentSummary -> Bool segmentSummary_resourceState :: SegmentSummary -> ResourceState segmentSummary_starred :: SegmentSummary -> Bool segmentSummary_startLatitude :: SegmentSummary -> Double segmentSummary_startLatlng :: SegmentSummary -> (Double, Double) segmentSummary_startLongitude :: SegmentSummary -> Double segmentSummary_state :: SegmentSummary -> Text -- | http://strava.github.io/api/v3/segments/#leaderboard data SegmentLeaderboardResponse SegmentLeaderboardResponse :: Integer -> Integer -> [SegmentLeaderboardEntry] -> SegmentLeaderboardResponse segmentLeaderboardResponse_effortCount :: SegmentLeaderboardResponse -> Integer segmentLeaderboardResponse_entryCount :: SegmentLeaderboardResponse -> Integer segmentLeaderboardResponse_entries :: SegmentLeaderboardResponse -> [SegmentLeaderboardEntry] -- | http://strava.github.io/api/v3/segments/#leaderboard data SegmentLeaderboardEntry SegmentLeaderboardEntry :: Integer -> Maybe Gender -> Integer -> Text -> Text -> Double -> Double -> Double -> Integer -> Integer -> Integer -> Integer -> UTCTime -> UTCTime -> SegmentLeaderboardEntry segmentLeaderboardEntry_activityId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_athleteGender :: SegmentLeaderboardEntry -> Maybe Gender segmentLeaderboardEntry_athleteId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_athleteName :: SegmentLeaderboardEntry -> Text segmentLeaderboardEntry_athleteProfile :: SegmentLeaderboardEntry -> Text segmentLeaderboardEntry_averageHr :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_averageWatts :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_distance :: SegmentLeaderboardEntry -> Double segmentLeaderboardEntry_effortId :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_elapsedTime :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_movingTime :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_rank :: SegmentLeaderboardEntry -> Integer segmentLeaderboardEntry_startDate :: SegmentLeaderboardEntry -> UTCTime segmentLeaderboardEntry_startDateLocal :: SegmentLeaderboardEntry -> UTCTime -- | http://strava.github.io/api/v3/segments/#explore data SegmentExplorerResponse SegmentExplorerResponse :: [SegmentExplorerEntry] -> SegmentExplorerResponse segmentExplorerResponse_segments :: SegmentExplorerResponse -> [SegmentExplorerEntry] -- | http://strava.github.io/api/v3/segments/#explore data SegmentExplorerEntry SegmentExplorerEntry :: Double -> Integer -> String -> Double -> Double -> (Double, Double) -> Integer -> Text -> Polyline -> ResourceState -> Bool -> (Double, Double) -> SegmentExplorerEntry segmentExplorerEntry_avgGrade :: SegmentExplorerEntry -> Double segmentExplorerEntry_climbCategory :: SegmentExplorerEntry -> Integer segmentExplorerEntry_climbCategoryDesc :: SegmentExplorerEntry -> String segmentExplorerEntry_distance :: SegmentExplorerEntry -> Double segmentExplorerEntry_elevDifference :: SegmentExplorerEntry -> Double segmentExplorerEntry_endLatlng :: SegmentExplorerEntry -> (Double, Double) segmentExplorerEntry_id :: SegmentExplorerEntry -> Integer segmentExplorerEntry_name :: SegmentExplorerEntry -> Text segmentExplorerEntry_points :: SegmentExplorerEntry -> Polyline segmentExplorerEntry_resourceState :: SegmentExplorerEntry -> ResourceState segmentExplorerEntry_starred :: SegmentExplorerEntry -> Bool segmentExplorerEntry_startLatlng :: SegmentExplorerEntry -> (Double, Double) instance FromJSON SegmentExplorerResponse instance Show SegmentExplorerResponse instance FromJSON SegmentExplorerEntry instance Show SegmentExplorerEntry instance FromJSON SegmentLeaderboardResponse instance Show SegmentLeaderboardResponse instance FromJSON SegmentLeaderboardEntry instance Show SegmentLeaderboardEntry instance FromJSON SegmentSummary instance Show SegmentSummary instance FromJSON SegmentDetailed instance Show SegmentDetailed -- | http://strava.github.io/api/v3/efforts/ module Strive.Types.Efforts -- | http://strava.github.io/api/v3/efforts/#detailed data EffortDetailed EffortDetailed :: Integer -> Integer -> Maybe Double -> Maybe Double -> Maybe Double -> Double -> Integer -> Integer -> Maybe Bool -> Integer -> Maybe Integer -> Maybe Integer -> Integer -> Text -> Maybe Integer -> ResourceState -> SegmentSummary -> UTCTime -> UTCTime -> Integer -> EffortDetailed effortDetailed_activityId :: EffortDetailed -> Integer effortDetailed_athleteId :: EffortDetailed -> Integer effortDetailed_averageCadence :: EffortDetailed -> Maybe Double effortDetailed_averageHeartrate :: EffortDetailed -> Maybe Double effortDetailed_averageWatts :: EffortDetailed -> Maybe Double effortDetailed_distance :: EffortDetailed -> Double effortDetailed_elapsedTime :: EffortDetailed -> Integer effortDetailed_endIndex :: EffortDetailed -> Integer effortDetailed_hidden :: EffortDetailed -> Maybe Bool effortDetailed_id :: EffortDetailed -> Integer effortDetailed_komRank :: EffortDetailed -> Maybe Integer effortDetailed_maxHeartrate :: EffortDetailed -> Maybe Integer effortDetailed_movingTime :: EffortDetailed -> Integer effortDetailed_name :: EffortDetailed -> Text effortDetailed_prRank :: EffortDetailed -> Maybe Integer effortDetailed_resourceState :: EffortDetailed -> ResourceState effortDetailed_segment :: EffortDetailed -> SegmentSummary effortDetailed_startDate :: EffortDetailed -> UTCTime effortDetailed_startDateLocal :: EffortDetailed -> UTCTime effortDetailed_startIndex :: EffortDetailed -> Integer instance Show EffortDetailed instance FromJSON EffortDetailed -- | http://strava.github.io/api/v3/activities/ module Strive.Types.Activities -- | http://strava.github.io/api/v3/activities/#detailed data ActivityDetailed ActivityDetailed :: Integer -> AthleteMeta -> Integer -> Double -> Maybe Double -> Double -> Integer -> Bool -> Maybe Text -> Maybe Bool -> Double -> Integer -> Maybe (Double, Double) -> Maybe Text -> Bool -> GearSummary -> Maybe Text -> Bool -> Integer -> Maybe Text -> Maybe Double -> Maybe Text -> Text -> Maybe Text -> Bool -> PolylineDetailed -> Double -> Integer -> Text -> Integer -> Bool -> ResourceState -> [EffortDetailed] -> UTCTime -> UTCTime -> Double -> Maybe (Double, Double) -> Double -> Text -> Double -> Bool -> Integer -> ActivityType -> Maybe Integer -> Maybe Integer -> ActivityDetailed activityDetailed_achievementCount :: ActivityDetailed -> Integer activityDetailed_athlete :: ActivityDetailed -> AthleteMeta activityDetailed_athleteCount :: ActivityDetailed -> Integer activityDetailed_averageSpeed :: ActivityDetailed -> Double activityDetailed_averageWatts :: ActivityDetailed -> Maybe Double activityDetailed_calories :: ActivityDetailed -> Double activityDetailed_commentCount :: ActivityDetailed -> Integer activityDetailed_commute :: ActivityDetailed -> Bool activityDetailed_description :: ActivityDetailed -> Maybe Text activityDetailed_deviceWatts :: ActivityDetailed -> Maybe Bool activityDetailed_distance :: ActivityDetailed -> Double activityDetailed_elapsedTime :: ActivityDetailed -> Integer activityDetailed_endLatlng :: ActivityDetailed -> Maybe (Double, Double) activityDetailed_externalId :: ActivityDetailed -> Maybe Text activityDetailed_flagged :: ActivityDetailed -> Bool activityDetailed_gear :: ActivityDetailed -> GearSummary activityDetailed_gearId :: ActivityDetailed -> Maybe Text activityDetailed_hasKudoed :: ActivityDetailed -> Bool activityDetailed_id :: ActivityDetailed -> Integer activityDetailed_instagramPrimaryPhoto :: ActivityDetailed -> Maybe Text activityDetailed_kilojoules :: ActivityDetailed -> Maybe Double activityDetailed_locationCity :: ActivityDetailed -> Maybe Text activityDetailed_locationCountry :: ActivityDetailed -> Text activityDetailed_locationState :: ActivityDetailed -> Maybe Text activityDetailed_manual :: ActivityDetailed -> Bool activityDetailed_map :: ActivityDetailed -> PolylineDetailed activityDetailed_maxSpeed :: ActivityDetailed -> Double activityDetailed_movingTime :: ActivityDetailed -> Integer activityDetailed_name :: ActivityDetailed -> Text activityDetailed_photoCount :: ActivityDetailed -> Integer activityDetailed_private :: ActivityDetailed -> Bool activityDetailed_resourceState :: ActivityDetailed -> ResourceState activityDetailed_segmentEfforts :: ActivityDetailed -> [EffortDetailed] activityDetailed_startDate :: ActivityDetailed -> UTCTime activityDetailed_startDateLocal :: ActivityDetailed -> UTCTime activityDetailed_startLatitude :: ActivityDetailed -> Double activityDetailed_startLatlng :: ActivityDetailed -> Maybe (Double, Double) activityDetailed_startLongitude :: ActivityDetailed -> Double activityDetailed_timezone :: ActivityDetailed -> Text activityDetailed_totalElevationGain :: ActivityDetailed -> Double activityDetailed_trainer :: ActivityDetailed -> Bool activityDetailed_truncated :: ActivityDetailed -> Integer activityDetailed_type :: ActivityDetailed -> ActivityType activityDetailed_uploadId :: ActivityDetailed -> Maybe Integer activityDetailed_weightedAverageWatts :: ActivityDetailed -> Maybe Integer -- | http://strava.github.io/api/v3/activities/#summary data ActivitySummary ActivitySummary :: Integer -> AthleteMeta -> Integer -> Double -> Maybe Double -> Integer -> Bool -> Maybe Bool -> Double -> Integer -> Maybe (Double, Double) -> Maybe Text -> Bool -> Maybe Text -> Bool -> Integer -> Maybe Double -> Integer -> Maybe Text -> Text -> Maybe Text -> Bool -> PolylineSummary -> Double -> Integer -> Text -> Integer -> Bool -> ResourceState -> UTCTime -> UTCTime -> Double -> Maybe (Double, Double) -> Double -> Text -> Double -> Bool -> ActivityType -> Maybe Integer -> Maybe Integer -> ActivitySummary activitySummary_achievementCount :: ActivitySummary -> Integer activitySummary_athlete :: ActivitySummary -> AthleteMeta activitySummary_athleteCount :: ActivitySummary -> Integer activitySummary_averageSpeed :: ActivitySummary -> Double activitySummary_averageWatts :: ActivitySummary -> Maybe Double activitySummary_commentCount :: ActivitySummary -> Integer activitySummary_commute :: ActivitySummary -> Bool activitySummary_deviceWatts :: ActivitySummary -> Maybe Bool activitySummary_distance :: ActivitySummary -> Double activitySummary_elapsedTime :: ActivitySummary -> Integer activitySummary_endLatlng :: ActivitySummary -> Maybe (Double, Double) activitySummary_externalId :: ActivitySummary -> Maybe Text activitySummary_flagged :: ActivitySummary -> Bool activitySummary_gearId :: ActivitySummary -> Maybe Text activitySummary_hasKudoed :: ActivitySummary -> Bool activitySummary_id :: ActivitySummary -> Integer activitySummary_kilojoules :: ActivitySummary -> Maybe Double activitySummary_kudosCount :: ActivitySummary -> Integer activitySummary_locationCity :: ActivitySummary -> Maybe Text activitySummary_locationCountry :: ActivitySummary -> Text activitySummary_locationState :: ActivitySummary -> Maybe Text activitySummary_manual :: ActivitySummary -> Bool activitySummary_map :: ActivitySummary -> PolylineSummary activitySummary_maxSpeed :: ActivitySummary -> Double activitySummary_movingTime :: ActivitySummary -> Integer activitySummary_name :: ActivitySummary -> Text activitySummary_photoCount :: ActivitySummary -> Integer activitySummary_private :: ActivitySummary -> Bool activitySummary_resourceState :: ActivitySummary -> ResourceState activitySummary_startDate :: ActivitySummary -> UTCTime activitySummary_startDateLocal :: ActivitySummary -> UTCTime activitySummary_startLatitude :: ActivitySummary -> Double activitySummary_startLatlng :: ActivitySummary -> Maybe (Double, Double) activitySummary_startLongitude :: ActivitySummary -> Double activitySummary_timezone :: ActivitySummary -> Text activitySummary_totalElevationGain :: ActivitySummary -> Double activitySummary_trainer :: ActivitySummary -> Bool activitySummary_type :: ActivitySummary -> ActivityType activitySummary_uploadId :: ActivitySummary -> Maybe Integer activitySummary_weightedAverageWatts :: ActivitySummary -> Maybe Integer -- | http://strava.github.io/api/v3/activities/#zones data ActivityZoneDetailed ActivityZoneDetailed :: [ActivityZoneDistributionBucket] -> ResourceState -> Bool -> ActivityZoneType -> ActivityZoneDetailed activityZoneDetailed_distributionBuckets :: ActivityZoneDetailed -> [ActivityZoneDistributionBucket] activityZoneDetailed_resourceState :: ActivityZoneDetailed -> ResourceState activityZoneDetailed_sensorBased :: ActivityZoneDetailed -> Bool activityZoneDetailed_type :: ActivityZoneDetailed -> ActivityZoneType -- | http://strava.github.io/api/v3/activities/#zones data ActivityZoneDistributionBucket ActivityZoneDistributionBucket :: Integer -> Integer -> Integer -> ActivityZoneDistributionBucket activityZoneDistributionBucket_max :: ActivityZoneDistributionBucket -> Integer activityZoneDistributionBucket_min :: ActivityZoneDistributionBucket -> Integer activityZoneDistributionBucket_time :: ActivityZoneDistributionBucket -> Integer -- | http://strava.github.io/api/v3/activities/#laps data ActivityLapSummary ActivityLapSummary :: Integer -> Integer -> Double -> Double -> Double -> Integer -> Integer -> Integer -> Integer -> Double -> Double -> Text -> ResourceState -> UTCTime -> UTCTime -> Integer -> Double -> ActivityLapSummary activityLapSummary_activityId :: ActivityLapSummary -> Integer activityLapSummary_athleteId :: ActivityLapSummary -> Integer activityLapSummary_averageSpeed :: ActivityLapSummary -> Double activityLapSummary_averageWatts :: ActivityLapSummary -> Double activityLapSummary_distance :: ActivityLapSummary -> Double activityLapSummary_elapsedTime :: ActivityLapSummary -> Integer activityLapSummary_endIndex :: ActivityLapSummary -> Integer activityLapSummary_id :: ActivityLapSummary -> Integer activityLapSummary_lapIndex :: ActivityLapSummary -> Integer activityLapSummary_maxSpeed :: ActivityLapSummary -> Double activityLapSummary_movingTime :: ActivityLapSummary -> Double activityLapSummary_name :: ActivityLapSummary -> Text activityLapSummary_resourceState :: ActivityLapSummary -> ResourceState activityLapSummary_startDate :: ActivityLapSummary -> UTCTime activityLapSummary_startDateLocal :: ActivityLapSummary -> UTCTime activityLapSummary_startIndex :: ActivityLapSummary -> Integer activityLapSummary_totalElevationGain :: ActivityLapSummary -> Double instance Show ActivityLapSummary instance FromJSON ActivityLapSummary instance FromJSON ActivityZoneDetailed instance Show ActivityZoneDetailed instance FromJSON ActivityZoneDistributionBucket instance Show ActivityZoneDistributionBucket instance FromJSON ActivitySummary instance Show ActivitySummary instance FromJSON ActivityDetailed instance Show ActivityDetailed -- | http://strava.github.io/api/v3/streams/ module Strive.Types.Streams -- | http://strava.github.io/api/v3/streams/#detailed data StreamDetailed StreamDetailed :: [Value] -> Integer -> Resolution -> SeriesType -> Text -> StreamDetailed streamDetailed_data :: StreamDetailed -> [Value] streamDetailed_originalSize :: StreamDetailed -> Integer streamDetailed_resolution :: StreamDetailed -> Resolution streamDetailed_seriesType :: StreamDetailed -> SeriesType streamDetailed_type :: StreamDetailed -> Text instance FromJSON StreamDetailed instance Show StreamDetailed -- | Data types representing responses from the API. module Strive.Types -- | Types and functions for dealing with the API client itself. module Strive.Client -- | Strava V3 API client. data Client Client :: String -> (Request -> IO (Response ByteString)) -> Client client_accessToken :: Client -> String client_requester :: Client -> Request -> IO (Response ByteString) -- | Build a new client using the default HTTP manager to make requests. buildClient :: Maybe Text -> IO Client instance Show Client -- | Aliases for common types. module Strive.Aliases type ActivityId = Integer type ApplicationId = Integer type ApplicationSecret = String type AthleteId = Integer type AuthorizationCode = String type ClubId = Integer type EffortId = Integer type ElapsedTime = Integer type Extension = String type GearId = String type Latitude = Double type Longitude = Double type Name = String type RedirectUri = String type Result a = Either (Response ByteString, String) a type SegmentId = Integer type StartTime = UTCTime type StreamId = Integer type UploadId = Integer -- | Helpers for dealing with HTTP requests. module Strive.Internal.HTTP -- | Perform an HTTP DELETE request. delete :: (QueryLike q, FromJSON j) => Client -> String -> q -> IO (Result j) -- | Perform an HTTP GET request. get :: (QueryLike q, FromJSON j) => Client -> String -> q -> IO (Result j) -- | Perform an HTTP POST request. post :: (QueryLike q, FromJSON j) => Client -> String -> q -> IO (Result j) -- | Perform an HTTP PUT request. put :: (QueryLike q, FromJSON j) => Client -> String -> q -> IO (Result j) -- | Build a request. buildRequest :: QueryLike q => Method -> Client -> String -> q -> IO Request -- | Actually perform an HTTP request. performRequest :: Client -> Request -> IO (Response ByteString) -- | Handle decoding a potentially failed response. handleResponse :: FromJSON j => Response ByteString -> Result j -- | Decode a response body as JSON. decodeValue :: FromJSON j => Response ByteString -> Either String j -- | http://strava.github.io/api/v3/activities/ module Strive.Actions.Activities -- | http://strava.github.io/api/v3/activities/#create createActivity :: Client -> Name -> ActivityType -> StartTime -> ElapsedTime -> CreateActivityOptions -> IO (Result ActivityDetailed) -- | http://strava.github.io/api/v3/activities/#get-details getActivity :: Client -> ActivityId -> GetActivityOptions -> IO (Result ActivitySummary) -- | http://strava.github.io/api/v3/activities/#put-updates updateActivity :: Client -> ActivityId -> UpdateActivityOptions -> IO (Result ActivityDetailed) -- | http://strava.github.io/api/v3/activities/#delete deleteActivity :: Client -> ActivityId -> IO (Result ()) -- | http://strava.github.io/api/v3/activities/#get-activities getCurrentActivities :: Client -> GetCurrentActivitiesOptions -> IO (Result [ActivitySummary]) -- | http://strava.github.io/api/v3/activities/#get-related getRelatedActivities :: Client -> ActivityId -> GetRelatedActivitiesOptions -> IO (Result [ActivitySummary]) -- | http://strava.github.io/api/v3/activities/#get-feed getFeed :: Client -> GetFeedOptions -> IO (Result [ActivitySummary]) -- | http://strava.github.io/api/v3/activities/#zones getActivityZones :: Client -> ActivityId -> IO (Result [ActivityZoneDetailed]) -- | http://strava.github.io/api/v3/activities/#laps getActivityLaps :: Client -> ActivityId -> IO (Result [ActivityLapSummary]) -- | http://strava.github.io/api/v3/athlete/ module Strive.Actions.Athletes -- | http://strava.github.io/api/v3/athlete/#get-details getCurrentAthlete :: Client -> IO (Result AthleteDetailed) -- | http://strava.github.io/api/v3/athlete/#get-another-details getAthlete :: Client -> AthleteId -> IO (Result AthleteSummary) -- | http://strava.github.io/api/v3/athlete/#update updateCurrentAthlete :: Client -> UpdateCurrentAthleteOptions -> IO (Result AthleteDetailed) -- | http://strava.github.io/api/v3/athlete/#stats getAthleteStats :: Client -> Integer -> IO (Result AthleteStats) -- | http://strava.github.io/api/v3/athlete/#koms getAthleteCrs :: Client -> AthleteId -> GetAthleteCrsOptions -> IO (Result [EffortDetailed]) -- | http://strava.github.io/api/v3/oauth/ module Strive.Actions.Authentication -- | http://strava.github.io/api/v3/oauth/#get-authorize buildAuthorizeUrl :: ApplicationId -> RedirectUri -> BuildAuthorizeUrlOptions -> String -- | http://strava.github.io/api/v3/oauth/#post-token exchangeToken :: ApplicationId -> ApplicationSecret -> AuthorizationCode -> IO (Result TokenExchangeResponse) -- | http://strava.github.io/api/v3/oauth/#deauthorize deauthorize :: Client -> IO (Result DeauthorizationResponse) -- | http://strava.github.io/api/v3/clubs/ module Strive.Actions.Clubs -- | http://strava.github.io/api/v3/clubs/#get-details getClub :: Client -> ClubId -> IO (Result ClubDetailed) -- | http://strava.github.io/api/v3/clubs/#get-athletes getCurrentClubs :: Client -> IO (Result [ClubSummary]) -- | http://strava.github.io/api/v3/clubs/#get-members getClubMembers :: Client -> ClubId -> GetClubMembersOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/clubs/#get-activities getClubActivities :: Client -> ClubId -> GetClubActivitiesOptions -> IO (Result [ActivitySummary]) -- | http://strava.github.io/api/v3/clubs/#join joinClub :: Client -> ClubId -> IO (Result ()) -- | http://strava.github.io/api/v3/clubs/#leave leaveClub :: Client -> ClubId -> IO (Result ()) -- | http://strava.github.io/api/v3/comments/ module Strive.Actions.Comments -- | http://strava.github.io/api/v3/comments/#list getActivityComments :: Client -> ActivityId -> GetActivityCommentsOptions -> IO (Result [CommentSummary]) -- | http://strava.github.io/api/v3/efforts/ module Strive.Actions.Efforts -- | http://strava.github.io/api/v3/efforts/#retrieve getSegmentEffort :: Client -> EffortId -> IO (Result EffortDetailed) -- | http://strava.github.io/api/v3/follow/ module Strive.Actions.Friends -- | http://strava.github.io/api/v3/follow/#friends getCurrentFriends :: Client -> GetCurrentFriendsOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#friends getFriends :: Client -> AthleteId -> GetFriendsOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#followers getCurrentFollowers :: Client -> GetCurrentFollowersOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#followers getFollowers :: Client -> AthleteId -> GetFollowersOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/follow/#both getCommonFriends :: Client -> AthleteId -> GetCommonFriendsOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/gear/ module Strive.Actions.Gear -- | http://strava.github.io/api/v3/gear/#show getGear :: Client -> GearId -> IO (Result GearDetailed) -- | http://strava.github.io/api/v3/kudos/ module Strive.Actions.Kudos -- | http://strava.github.io/api/v3/kudos/#list getActivityKudoers :: Client -> ActivityId -> GetActivityKudoersOptions -> IO (Result [AthleteSummary]) -- | http://strava.github.io/api/v3/photos/ module Strive.Actions.Photos -- | http://strava.github.io/api/v3/photos/#list getActivityPhotos :: Client -> ActivityId -> IO (Result [PhotoSummary]) -- | http://strava.github.io/api/v3/segments/ module Strive.Actions.Segments -- | http://strava.github.io/api/v3/segments/#retrieve getSegment :: Client -> SegmentId -> IO (Result SegmentDetailed) -- | http://strava.github.io/api/v3/segments/#starred getStarredSegments :: Client -> GetStarredSegmentsOptions -> IO (Result [SegmentSummary]) -- | http://strava.github.io/api/v3/segments/#efforts getSegmentEfforts :: Client -> SegmentId -> GetSegmentEffortsOptions -> IO (Result [EffortDetailed]) -- | http://strava.github.io/api/v3/segments/#leaderboard getSegmentLeaderboard :: Client -> SegmentId -> GetSegmentLeaderboardOptions -> IO (Result SegmentLeaderboardResponse) -- | http://strava.github.io/api/v3/segments/#explore exploreSegments :: Client -> (Latitude, Longitude, Latitude, Longitude) -> ExploreSegmentsOptions -> IO (Result SegmentExplorerResponse) -- | http://strava.github.io/api/v3/streams/ module Strive.Actions.Streams -- | http://strava.github.io/api/v3/streams/#activity getActivityStreams :: Client -> StreamId -> [StreamType] -> GetStreamsOptions -> IO (Result [StreamDetailed]) -- | http://strava.github.io/api/v3/streams/#effort getEffortStreams :: Client -> StreamId -> [StreamType] -> GetStreamsOptions -> IO (Result [StreamDetailed]) -- | http://strava.github.io/api/v3/streams/#segment getSegmentStreams :: Client -> StreamId -> [StreamType] -> GetStreamsOptions -> IO (Result [StreamDetailed]) -- | http://strava.github.io/api/v3/uploads/ module Strive.Actions.Uploads -- | http://strava.github.io/api/v3/uploads/#post-file uploadActivity :: Client -> ByteString -> Extension -> UploadActivityOptions -> IO (Result UploadStatus) -- | http://strava.github.io/api/v3/uploads/#get-status getUpload :: Client -> UploadId -> IO (Result UploadStatus) -- | Functions for performing actions against the API. module Strive.Actions -- | A Haskell client for the Strava V3 API. module Strive