-- | <http://strava.github.io/api/v3/comments/>
module Strive.Actions.Comments
  ( getActivityComments,
  )
where

import Network.HTTP.Types (toQuery)
import Strive.Aliases (ActivityId, Result)
import Strive.Client (Client)
import Strive.Internal.HTTP (get)
import Strive.Options (GetActivityCommentsOptions)
import Strive.Types (CommentSummary)

-- | <http://strava.github.io/api/v3/comments/#list>
getActivityComments ::
  Client ->
  ActivityId ->
  GetActivityCommentsOptions ->
  IO (Result [CommentSummary])
getActivityComments :: Client
-> ActivityId
-> GetActivityCommentsOptions
-> IO (Result [CommentSummary])
getActivityComments Client
client ActivityId
activityId GetActivityCommentsOptions
options = forall q j.
(QueryLike q, FromJSON j) =>
Client -> String -> q -> IO (Result j)
get Client
client String
resource Query
query
  where
    resource :: String
resource = String
"api/v3/activities/" forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> String
show ActivityId
activityId forall a. Semigroup a => a -> a -> a
<> String
"/comments"
    query :: Query
query = forall a. QueryLike a => a -> Query
toQuery GetActivityCommentsOptions
options