-- | <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 = Client -> String -> Query -> IO (Result [CommentSummary])
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/" String -> String -> String
forall a. Semigroup a => a -> a -> a
<> ActivityId -> String
forall a. Show a => a -> String
show ActivityId
activityId String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
"/comments"
  query :: Query
query = GetActivityCommentsOptions -> Query
forall a. QueryLike a => a -> Query
toQuery GetActivityCommentsOptions
options