module Strive.Options.Clubs
( GetClubMembersOptions
, GetClubActivitiesOptions (..)
) where
import Data.Default (Default, def)
import Data.Time.Clock (UTCTime)
import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds)
import Network.HTTP.Types (QueryLike, toQuery)
import Strive.Internal.Options (PaginationOptions)
type GetClubMembersOptions = PaginationOptions
data GetClubActivitiesOptions = GetClubActivitiesOptions
{ getClubActivitiesOptions_before :: Maybe UTCTime
, getClubActivitiesOptions_after :: Maybe UTCTime
, getClubActivitiesOptions_page :: Integer
, getClubActivitiesOptions_perPage :: Integer
} deriving Show
instance Default GetClubActivitiesOptions where
def = GetClubActivitiesOptions
{ getClubActivitiesOptions_before = Nothing
, getClubActivitiesOptions_after = Nothing
, getClubActivitiesOptions_page = 1
, getClubActivitiesOptions_perPage = 200
}
instance QueryLike GetClubActivitiesOptions where
toQuery options = toQuery
[ ("before", fmap (show . utcTimeToPOSIXSeconds) (getClubActivitiesOptions_before options))
, ("after", fmap (show . utcTimeToPOSIXSeconds) (getClubActivitiesOptions_after options))
, ("page", Just (show (getClubActivitiesOptions_page options)))
, ("per_page", Just (show (getClubActivitiesOptions_perPage options)))
]