diff options
Diffstat (limited to 'lib/Web/OpenWeatherMap/API.hs')
-rw-r--r-- | lib/Web/OpenWeatherMap/API.hs | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/Web/OpenWeatherMap/API.hs b/lib/Web/OpenWeatherMap/API.hs index b9624f8..516845c 100644 --- a/lib/Web/OpenWeatherMap/API.hs +++ b/lib/Web/OpenWeatherMap/API.hs @@ -14,12 +14,14 @@ module Web.OpenWeatherMap.API import Data.Proxy (Proxy(..)) -import Servant.API ((:<|>)(..), (:>), Get, JSON, QueryParam) +import Servant.API ((:<|>)(..), (:>), Get, JSON, QueryParam', Required, Strict) import Servant.Client (ClientM, client) import Web.OpenWeatherMap.Types.CurrentWeather (CurrentWeather) import Web.OpenWeatherMap.Types.ForecastWeather (ForecastWeather) +type QueryParam = QueryParam' '[ Required, Strict] + type GetCurrentWeather = AppId :> Get '[ JSON] CurrentWeather type GetForecastWeather = AppId :> Get '[ JSON] ForecastWeather @@ -36,25 +38,25 @@ type API = Current :<|> Forecast -- | Request current weather in the city. weatherByName :: - Maybe String -- ^ City name, e. g. \"Moscow\" or \"Moscow,ru\". - -> Maybe String -- ^ API key. + String -- ^ City name, e. g. \"Moscow\" or \"Moscow,ru\". + -> String -- ^ API key. -> ClientM CurrentWeather -- | Request current weather at the geographic coordinates (in decimal degrees). weatherByCoord :: - Maybe Double -- ^ Latitude, e. g. 55.7522200 for Moscow. - -> Maybe Double -- ^ Longitude, e. g. 37.6155600 for Moscow. - -> Maybe String -- ^ API key. + Double -- ^ Latitude, e. g. 55.7522200 for Moscow. + -> Double -- ^ Longitude, e. g. 37.6155600 for Moscow. + -> String -- ^ API key. -> ClientM CurrentWeather -- | Request forecast weather in the city. forecastByName :: - Maybe String -- ^ City name, e. g. \"Moscow\" or \"Moscow,ru\". - -> Maybe String -- ^ API key. + String -- ^ City name, e. g. \"Moscow\" or \"Moscow,ru\". + -> String -- ^ API key. -> ClientM ForecastWeather -- | Request current weather at the geographic coordinates (in decimal degrees). forecastByCoord :: - Maybe Double -- ^ Latitude, e. g. 55.7522200 for Moscow. - -> Maybe Double -- ^ Longitude, e. g. 37.6155600 for Moscow. - -> Maybe String -- ^ API key. + Double -- ^ Latitude, e. g. 55.7522200 for Moscow. + -> Double -- ^ Longitude, e. g. 37.6155600 for Moscow. + -> String -- ^ API key. -> ClientM ForecastWeather (weatherByName :<|> weatherByCoord) :<|> (forecastByName :<|> forecastByCoord) = client (Proxy :: Proxy API) |