-- | module Strive.Actions.Athletes ( getCurrentAthlete , getAthlete , updateCurrentAthlete , getAthleteStats , getAthleteCrs ) where import Network.HTTP.Types (Query, toQuery) import Strive.Aliases (AthleteId, Result) import Strive.Client (Client) import Strive.Internal.HTTP (get, put) import Strive.Options (GetAthleteCrsOptions, UpdateCurrentAthleteOptions) import Strive.Types (AthleteDetailed, AthleteStats, AthleteSummary, EffortDetailed) -- | getCurrentAthlete :: Client -> IO (Result AthleteDetailed) getCurrentAthlete client = get client resource query where resource = "api/v3/athlete" query = [] :: Query -- | getAthlete :: Client -> AthleteId -> IO (Result AthleteSummary) getAthlete client athleteId = get client resource query where resource = "api/v3/athletes/" ++ show athleteId query = [] :: Query -- | updateCurrentAthlete :: Client -> UpdateCurrentAthleteOptions -> IO (Result AthleteDetailed) updateCurrentAthlete client options = put client resource query where resource = "api/v3/athlete" query = toQuery options -- | getAthleteStats :: Client -> Integer -> IO (Result AthleteStats) getAthleteStats client athleteId = get client resource query where resource = "api/v3/athletes/" ++ show athleteId ++ "/stats" query = [] :: Query -- | getAthleteCrs :: Client -> AthleteId -> GetAthleteCrsOptions -> IO (Result [EffortDetailed]) getAthleteCrs client athleteId options = get client resource query where resource = "api/v3/athletes/" ++ show athleteId ++ "/koms" query = toQuery options