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 -> Maybe UTCTime
getClubActivitiesOptions_before :: Maybe UTCTime,
GetClubActivitiesOptions -> Maybe UTCTime
getClubActivitiesOptions_after :: Maybe UTCTime,
GetClubActivitiesOptions -> Integer
getClubActivitiesOptions_page :: Integer,
GetClubActivitiesOptions -> Integer
getClubActivitiesOptions_perPage :: Integer
}
deriving (Int -> GetClubActivitiesOptions -> ShowS
[GetClubActivitiesOptions] -> ShowS
GetClubActivitiesOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetClubActivitiesOptions] -> ShowS
$cshowList :: [GetClubActivitiesOptions] -> ShowS
show :: GetClubActivitiesOptions -> String
$cshow :: GetClubActivitiesOptions -> String
showsPrec :: Int -> GetClubActivitiesOptions -> ShowS
$cshowsPrec :: Int -> GetClubActivitiesOptions -> ShowS
Show)
instance Default GetClubActivitiesOptions where
def :: GetClubActivitiesOptions
def =
GetClubActivitiesOptions
{ getClubActivitiesOptions_before :: Maybe UTCTime
getClubActivitiesOptions_before = forall a. Maybe a
Nothing,
getClubActivitiesOptions_after :: Maybe UTCTime
getClubActivitiesOptions_after = forall a. Maybe a
Nothing,
getClubActivitiesOptions_page :: Integer
getClubActivitiesOptions_page = Integer
1,
getClubActivitiesOptions_perPage :: Integer
getClubActivitiesOptions_perPage = Integer
200
}
instance QueryLike GetClubActivitiesOptions where
toQuery :: GetClubActivitiesOptions -> Query
toQuery GetClubActivitiesOptions
options =
forall a. QueryLike a => a -> Query
toQuery
[ ( String
"before",
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
(forall a. Show a => a -> String
show forall b c a. (b -> c) -> (a -> b) -> a -> c
. UTCTime -> POSIXTime
utcTimeToPOSIXSeconds)
(GetClubActivitiesOptions -> Maybe UTCTime
getClubActivitiesOptions_before GetClubActivitiesOptions
options)
),
( String
"after",
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
(forall a. Show a => a -> String
show forall b c a. (b -> c) -> (a -> b) -> a -> c
. UTCTime -> POSIXTime
utcTimeToPOSIXSeconds)
(GetClubActivitiesOptions -> Maybe UTCTime
getClubActivitiesOptions_after GetClubActivitiesOptions
options)
),
(String
"page", forall a. a -> Maybe a
Just (forall a. Show a => a -> String
show (GetClubActivitiesOptions -> Integer
getClubActivitiesOptions_page GetClubActivitiesOptions
options))),
(String
"per_page", forall a. a -> Maybe a
Just (forall a. Show a => a -> String
show (GetClubActivitiesOptions -> Integer
getClubActivitiesOptions_perPage GetClubActivitiesOptions
options)))
]