{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module Data.EBird.Client.Product where
import Data.Default
import Data.Text
import Optics.TH
import Servant.Client
import Data.EBird.API
import Data.EBird.Client.Generated
recentChecklists
:: Text
-> RegionCode
-> RecentChecklistsParams
-> ClientM [ChecklistFeedEntry]
recentChecklists :: Text
-> RegionCode
-> RecentChecklistsParams
-> ClientM [ChecklistFeedEntry]
recentChecklists Text
k RegionCode
r RecentChecklistsParams{Maybe Integer
_recentChecklistsParamsMaxResults :: Maybe Integer
_recentChecklistsParamsMaxResults :: RecentChecklistsParams -> Maybe Integer
..} =
Text -> RegionCode -> Maybe Integer -> ClientM [ChecklistFeedEntry]
recentChecklists_ Text
k RegionCode
r Maybe Integer
_recentChecklistsParamsMaxResults
newtype RecentChecklistsParams =
RecentChecklistsParams
{
RecentChecklistsParams -> Maybe Integer
_recentChecklistsParamsMaxResults :: Maybe Integer
}
deriving (Int -> RecentChecklistsParams -> ShowS
[RecentChecklistsParams] -> ShowS
RecentChecklistsParams -> String
(Int -> RecentChecklistsParams -> ShowS)
-> (RecentChecklistsParams -> String)
-> ([RecentChecklistsParams] -> ShowS)
-> Show RecentChecklistsParams
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RecentChecklistsParams -> ShowS
showsPrec :: Int -> RecentChecklistsParams -> ShowS
$cshow :: RecentChecklistsParams -> String
show :: RecentChecklistsParams -> String
$cshowList :: [RecentChecklistsParams] -> ShowS
showList :: [RecentChecklistsParams] -> ShowS
Show, ReadPrec [RecentChecklistsParams]
ReadPrec RecentChecklistsParams
Int -> ReadS RecentChecklistsParams
ReadS [RecentChecklistsParams]
(Int -> ReadS RecentChecklistsParams)
-> ReadS [RecentChecklistsParams]
-> ReadPrec RecentChecklistsParams
-> ReadPrec [RecentChecklistsParams]
-> Read RecentChecklistsParams
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS RecentChecklistsParams
readsPrec :: Int -> ReadS RecentChecklistsParams
$creadList :: ReadS [RecentChecklistsParams]
readList :: ReadS [RecentChecklistsParams]
$creadPrec :: ReadPrec RecentChecklistsParams
readPrec :: ReadPrec RecentChecklistsParams
$creadListPrec :: ReadPrec [RecentChecklistsParams]
readListPrec :: ReadPrec [RecentChecklistsParams]
Read, RecentChecklistsParams -> RecentChecklistsParams -> Bool
(RecentChecklistsParams -> RecentChecklistsParams -> Bool)
-> (RecentChecklistsParams -> RecentChecklistsParams -> Bool)
-> Eq RecentChecklistsParams
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RecentChecklistsParams -> RecentChecklistsParams -> Bool
== :: RecentChecklistsParams -> RecentChecklistsParams -> Bool
$c/= :: RecentChecklistsParams -> RecentChecklistsParams -> Bool
/= :: RecentChecklistsParams -> RecentChecklistsParams -> Bool
Eq)
defaultRecentChecklistsParams :: RecentChecklistsParams
defaultRecentChecklistsParams :: RecentChecklistsParams
defaultRecentChecklistsParams =
RecentChecklistsParams
{ _recentChecklistsParamsMaxResults :: Maybe Integer
_recentChecklistsParamsMaxResults = Maybe Integer
forall a. Maybe a
Nothing
}
instance Default RecentChecklistsParams where
def :: RecentChecklistsParams
def = RecentChecklistsParams
defaultRecentChecklistsParams
makeLenses ''RecentChecklistsParams
makeFieldLabels ''RecentChecklistsParams
top100
:: Text
-> Region
-> EBirdDate
-> Top100Params
-> ClientM [Top100ListEntry]
top100 :: Text
-> Region -> EBirdDate -> Top100Params -> ClientM [Top100ListEntry]
top100 Text
k Region
r EBirdDate
date Top100Params{Maybe Integer
Maybe RankTop100By
_top100ParamsRankBy :: Maybe RankTop100By
_top100ParamsMaxResults :: Maybe Integer
_top100ParamsRankBy :: Top100Params -> Maybe RankTop100By
_top100ParamsMaxResults :: Top100Params -> Maybe Integer
..} =
Text
-> Region
-> Integer
-> Integer
-> Integer
-> Maybe RankTop100By
-> Maybe Integer
-> ClientM [Top100ListEntry]
top100_ Text
k Region
r Integer
y Integer
m Integer
d Maybe RankTop100By
_top100ParamsRankBy Maybe Integer
_top100ParamsMaxResults
where
(Integer
y,Integer
m,Integer
d) = EBirdDate -> (Integer, Integer, Integer)
eBirdDateToGregorian EBirdDate
date
data Top100Params =
Top100Params
{
Top100Params -> Maybe RankTop100By
_top100ParamsRankBy :: Maybe RankTop100By
, Top100Params -> Maybe Integer
_top100ParamsMaxResults :: Maybe Integer
}
deriving (Int -> Top100Params -> ShowS
[Top100Params] -> ShowS
Top100Params -> String
(Int -> Top100Params -> ShowS)
-> (Top100Params -> String)
-> ([Top100Params] -> ShowS)
-> Show Top100Params
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Top100Params -> ShowS
showsPrec :: Int -> Top100Params -> ShowS
$cshow :: Top100Params -> String
show :: Top100Params -> String
$cshowList :: [Top100Params] -> ShowS
showList :: [Top100Params] -> ShowS
Show, ReadPrec [Top100Params]
ReadPrec Top100Params
Int -> ReadS Top100Params
ReadS [Top100Params]
(Int -> ReadS Top100Params)
-> ReadS [Top100Params]
-> ReadPrec Top100Params
-> ReadPrec [Top100Params]
-> Read Top100Params
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS Top100Params
readsPrec :: Int -> ReadS Top100Params
$creadList :: ReadS [Top100Params]
readList :: ReadS [Top100Params]
$creadPrec :: ReadPrec Top100Params
readPrec :: ReadPrec Top100Params
$creadListPrec :: ReadPrec [Top100Params]
readListPrec :: ReadPrec [Top100Params]
Read, Top100Params -> Top100Params -> Bool
(Top100Params -> Top100Params -> Bool)
-> (Top100Params -> Top100Params -> Bool) -> Eq Top100Params
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Top100Params -> Top100Params -> Bool
== :: Top100Params -> Top100Params -> Bool
$c/= :: Top100Params -> Top100Params -> Bool
/= :: Top100Params -> Top100Params -> Bool
Eq)
defaultTop100Params :: Top100Params
defaultTop100Params :: Top100Params
defaultTop100Params =
Top100Params
{ _top100ParamsRankBy :: Maybe RankTop100By
_top100ParamsRankBy = Maybe RankTop100By
forall a. Maybe a
Nothing
, _top100ParamsMaxResults :: Maybe Integer
_top100ParamsMaxResults = Maybe Integer
forall a. Maybe a
Nothing
}
instance Default Top100Params where
def :: Top100Params
def = Top100Params
defaultTop100Params
makeLenses ''Top100Params
makeFieldLabels ''Top100Params
checklistFeed
:: Text
-> Region
-> EBirdDate
-> ChecklistFeedParams
-> ClientM [ChecklistFeedEntry]
checklistFeed :: Text
-> Region
-> EBirdDate
-> ChecklistFeedParams
-> ClientM [ChecklistFeedEntry]
checklistFeed Text
k Region
r EBirdDate
date ChecklistFeedParams{Maybe Integer
Maybe SortChecklistsBy
_checklistFeedParamsSortBy :: Maybe SortChecklistsBy
_checklistFeedParamsMaxResults :: Maybe Integer
_checklistFeedParamsSortBy :: ChecklistFeedParams -> Maybe SortChecklistsBy
_checklistFeedParamsMaxResults :: ChecklistFeedParams -> Maybe Integer
..} =
Text
-> Region
-> Integer
-> Integer
-> Integer
-> Maybe SortChecklistsBy
-> Maybe Integer
-> ClientM [ChecklistFeedEntry]
checklistFeed_ Text
k Region
r Integer
y Integer
m Integer
d
Maybe SortChecklistsBy
_checklistFeedParamsSortBy
Maybe Integer
_checklistFeedParamsMaxResults
where
(Integer
y,Integer
m,Integer
d) = EBirdDate -> (Integer, Integer, Integer)
eBirdDateToGregorian EBirdDate
date
data ChecklistFeedParams =
ChecklistFeedParams
{
ChecklistFeedParams -> Maybe SortChecklistsBy
_checklistFeedParamsSortBy :: Maybe SortChecklistsBy
, ChecklistFeedParams -> Maybe Integer
_checklistFeedParamsMaxResults :: Maybe Integer
}
deriving (Int -> ChecklistFeedParams -> ShowS
[ChecklistFeedParams] -> ShowS
ChecklistFeedParams -> String
(Int -> ChecklistFeedParams -> ShowS)
-> (ChecklistFeedParams -> String)
-> ([ChecklistFeedParams] -> ShowS)
-> Show ChecklistFeedParams
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ChecklistFeedParams -> ShowS
showsPrec :: Int -> ChecklistFeedParams -> ShowS
$cshow :: ChecklistFeedParams -> String
show :: ChecklistFeedParams -> String
$cshowList :: [ChecklistFeedParams] -> ShowS
showList :: [ChecklistFeedParams] -> ShowS
Show, ReadPrec [ChecklistFeedParams]
ReadPrec ChecklistFeedParams
Int -> ReadS ChecklistFeedParams
ReadS [ChecklistFeedParams]
(Int -> ReadS ChecklistFeedParams)
-> ReadS [ChecklistFeedParams]
-> ReadPrec ChecklistFeedParams
-> ReadPrec [ChecklistFeedParams]
-> Read ChecklistFeedParams
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ChecklistFeedParams
readsPrec :: Int -> ReadS ChecklistFeedParams
$creadList :: ReadS [ChecklistFeedParams]
readList :: ReadS [ChecklistFeedParams]
$creadPrec :: ReadPrec ChecklistFeedParams
readPrec :: ReadPrec ChecklistFeedParams
$creadListPrec :: ReadPrec [ChecklistFeedParams]
readListPrec :: ReadPrec [ChecklistFeedParams]
Read, ChecklistFeedParams -> ChecklistFeedParams -> Bool
(ChecklistFeedParams -> ChecklistFeedParams -> Bool)
-> (ChecklistFeedParams -> ChecklistFeedParams -> Bool)
-> Eq ChecklistFeedParams
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ChecklistFeedParams -> ChecklistFeedParams -> Bool
== :: ChecklistFeedParams -> ChecklistFeedParams -> Bool
$c/= :: ChecklistFeedParams -> ChecklistFeedParams -> Bool
/= :: ChecklistFeedParams -> ChecklistFeedParams -> Bool
Eq)
defaultChecklistFeedParams :: ChecklistFeedParams
defaultChecklistFeedParams :: ChecklistFeedParams
defaultChecklistFeedParams =
ChecklistFeedParams
{ _checklistFeedParamsSortBy :: Maybe SortChecklistsBy
_checklistFeedParamsSortBy = Maybe SortChecklistsBy
forall a. Maybe a
Nothing
, _checklistFeedParamsMaxResults :: Maybe Integer
_checklistFeedParamsMaxResults = Maybe Integer
forall a. Maybe a
Nothing
}
instance Default ChecklistFeedParams where
def :: ChecklistFeedParams
def = ChecklistFeedParams
defaultChecklistFeedParams
makeLenses ''ChecklistFeedParams
makeFieldLabels ''ChecklistFeedParams
regionalStatistics
:: Text
-> Region
-> EBirdDate
-> ClientM RegionalStatistics
regionalStatistics :: Text -> Region -> EBirdDate -> ClientM RegionalStatistics
regionalStatistics Text
k Region
r EBirdDate
date =
Text
-> Region
-> Integer
-> Integer
-> Integer
-> ClientM RegionalStatistics
regionalStatistics_ Text
k Region
r Integer
y Integer
m Integer
d
where
(Integer
y,Integer
m,Integer
d) = EBirdDate -> (Integer, Integer, Integer)
eBirdDateToGregorian EBirdDate
date
speciesList
:: Text
-> Region
-> ClientM [SpeciesCode]
speciesList :: Text -> Region -> ClientM [SpeciesCode]
speciesList = Text -> Region -> ClientM [SpeciesCode]
speciesList_
viewChecklist
:: Text
-> Text
-> ClientM Checklist
viewChecklist :: Text -> Text -> ClientM Checklist
viewChecklist = Text -> Text -> ClientM Checklist
viewChecklist_