From e7a5255ed66162cebea785af30d3b534649ab24b Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Thu, 23 Apr 2020 13:37:51 +0200 Subject: Make required all the query parameters --- lib/Web/OpenWeatherMap/API.hs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'lib/Web/OpenWeatherMap/API.hs') 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) -- cgit v1.2.3