module Web.Yahoo.Finance.YQL.Internal.API where
import Web.Yahoo.Finance.YQL.Internal.Types
import Data.Proxy
import Data.Text (Text)
import Servant.API
import Servant.Client
#if MIN_VERSION_servant(0, 9, 0)
#elif MIN_VERSION_servant(0, 5, 0)
import Control.Monad.Except
import Network.HTTP.Client (Manager)
#else
import Control.Monad.Trans.Either
#endif
type YahooFinanceYQLApi
= "v1"
:> "public"
:> "yql"
:> QueryParam "q" YQLQuery
:> QueryParam "format" Text
:> QueryParam "env" Text
:> QueryParam "callback" Text
:> Get '[JSON] YQLResponse
#if MIN_VERSION_servant(0, 9, 0)
getQuotesInternal :: Maybe YQLQuery -> Maybe Text -> Maybe Text -> Maybe Text -> ClientM YQLResponse
#elif MIN_VERSION_servant(0, 6, 0)
getQuotesInternal :: Maybe YQLQuery -> Maybe Text -> Maybe Text -> Maybe Text -> Manager -> BaseUrl -> ExceptT ServantError IO YQLResponse
#elif MIN_VERSION_servant(0, 5, 0)
getQuotesInternal :: BaseUrl -> Manager -> Maybe YQLQuery -> Maybe Text -> Maybe Text -> Maybe Text -> ExceptT ServantError IO YQLResponse
#else
getQuotesInternal :: BaseUrl -> Maybe YQLQuery -> Maybe Text -> Maybe Text -> Maybe Text -> EitherT ServantError IO YQLResponse
#endif
getQuotesInternal = client (Proxy :: Proxy YahooFinanceYQLApi)