-- | module Strive.Actions.Friends ( getCurrentFriends , getFriends , getCurrentFollowers , getFollowers , getCommonFriends ) where import Network.HTTP.Types (toQuery) import Strive.Aliases (AthleteId, Result) import Strive.Client (Client) import Strive.Internal.HTTP (get) import Strive.Options (GetCommonFriendsOptions, GetCurrentFollowersOptions, GetCurrentFriendsOptions, GetFollowersOptions, GetFriendsOptions) import Strive.Types (AthleteSummary) -- | getCurrentFriends :: Client -> GetCurrentFriendsOptions -> IO (Result [AthleteSummary]) getCurrentFriends client options = get client resource query where resource = "api/v3/athlete/friends" query = toQuery options -- | getFriends :: Client -> AthleteId -> GetFriendsOptions -> IO (Result [AthleteSummary]) getFriends client athleteId options = get client resource query where resource = "api/v3/athletes/" ++ show athleteId ++ "/friends" query = toQuery options -- | getCurrentFollowers :: Client -> GetCurrentFollowersOptions -> IO (Result [AthleteSummary]) getCurrentFollowers client options = get client resource query where resource = "api/v3/athlete/followers" query = toQuery options -- | getFollowers :: Client -> AthleteId -> GetFollowersOptions -> IO (Result [AthleteSummary]) getFollowers client athleteId options = get client resource query where resource = "api/v3/athletes/" ++ show athleteId ++ "/followers" query = toQuery options -- | getCommonFriends :: Client -> AthleteId -> GetCommonFriendsOptions -> IO (Result [AthleteSummary]) getCommonFriends client athleteId options = get client resource query where resource = "api/v3/athletes/" ++ show athleteId ++ "/both-following" query = toQuery options