{-# LANGUAGE DataKinds #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# HLINT ignore "Eta reduce" #-}
module Data.EBird.Client (
askEBird
, recentObservations
, recentNotableObservations
, recentNearbyObservations
, recentNearbySpeciesObservations
, recentNearestSpeciesObservations
, recentNearbyNotableObservations
, historicalObservations
, recentChecklists
, top100
, checklistFeed
, regionalStatistics
, speciesList
, viewChecklist
, regionHotspots
, nearbyHotspots
, hotspotInfo
, taxonomy
, taxonomicForms
, taxaLocaleCodes
, taxonomyVersions
, taxonomicGroups
, regionInfo
, subregionList
, adjacentRegions
, module Data.EBird.Client.Generated
, module Data.EBird.API
, ClientError
) where
import Network.HTTP.Client.TLS
import Servant.Client
import Data.EBird.API
import Data.EBird.Client.Generated
import Data.EBird.Client.Hotspots
import Data.EBird.Client.Observations
import Data.EBird.Client.Product
import Data.EBird.Client.Regions
import Data.EBird.Client.Taxonomy
askEBird :: ClientM a -> IO (Either ClientError a)
askEBird :: forall a. ClientM a -> IO (Either ClientError a)
askEBird ClientM a
question = do
Manager
manager' <- IO Manager
forall (m :: * -> *). MonadIO m => m Manager
newTlsManager
ClientM a -> ClientEnv -> IO (Either ClientError a)
forall a. ClientM a -> ClientEnv -> IO (Either ClientError a)
runClientM ClientM a
question (Manager -> BaseUrl -> ClientEnv
mkClientEnv Manager
manager' BaseUrl
eBirdHQ)
where
eBirdHQ :: BaseUrl
eBirdHQ :: BaseUrl
eBirdHQ = Scheme -> String -> Int -> String -> BaseUrl
BaseUrl Scheme
Https String
"api.ebird.org" Int
443 String
""