packages feed

scotty-params-parser 0.3 → 0.4

raw patch · 3 files changed

+60/−60 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Scotty.QueryParser: data Params a
- Scotty.QueryParser: instance GHC.Base.Alternative Scotty.QueryParser.Params
- Scotty.QueryParser: instance GHC.Base.Applicative Scotty.QueryParser.Params
- Scotty.QueryParser: instance GHC.Base.Functor Scotty.QueryParser.Params
- Scotty.QueryParser: instance GHC.Base.Monad Scotty.QueryParser.Params
- Scotty.QueryParser: instance GHC.Base.MonadPlus Scotty.QueryParser.Params
- Scotty.QueryParser: lookup :: Text -> Params Text
- Scotty.QueryParser: param :: Param a -> Text -> Params a
- Scotty.QueryParser: run :: Params a -> forall m e. (ScottyError e, Monad m) => ActionT e m a
- Scotty.QueryParser: type Param a = Text -> Either Text a
+ Scotty.ParamsParser: data Params a
+ Scotty.ParamsParser: instance GHC.Base.Alternative Scotty.ParamsParser.Params
+ Scotty.ParamsParser: instance GHC.Base.Applicative Scotty.ParamsParser.Params
+ Scotty.ParamsParser: instance GHC.Base.Functor Scotty.ParamsParser.Params
+ Scotty.ParamsParser: instance GHC.Base.Monad Scotty.ParamsParser.Params
+ Scotty.ParamsParser: instance GHC.Base.MonadPlus Scotty.ParamsParser.Params
+ Scotty.ParamsParser: lookup :: Text -> Params Text
+ Scotty.ParamsParser: param :: Param a -> Text -> Params a
+ Scotty.ParamsParser: run :: Params a -> forall m e. (ScottyError e, Monad m) => ActionT e m a
+ Scotty.ParamsParser: type Param a = Text -> Either Text a

Files

+ library/Scotty/ParamsParser.hs view
@@ -0,0 +1,58 @@+-- |+-- A DSL for parsing of an HTTP request query parameters.+module Scotty.ParamsParser+(+  Params,+  run,+  lookup,+  param,+  Param,+)+where++import BasePrelude hiding (lookup)+import Control.Monad.Trans.Class+import Control.Monad.Trans.Reader+import Data.Text.Lazy (Text)+import qualified Web.Scotty.Trans as Scotty+import qualified Success.Pure as Success+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text.Lazy+++-- |+-- A multiple parameters parser.+newtype Params a =+  Params (ReaderT (HashMap.HashMap Text Text) (Success.Success Text) a)+  deriving (Functor, Applicative, Alternative, Monad, MonadPlus)++run :: Params a -> forall m e. (Scotty.ScottyError e, Monad m) => Scotty.ActionT e m a+run (Params (ReaderT success')) =+  Scotty.params >>= onParams+  where+    onParams params =+      either (Scotty.raise . Scotty.stringError . Data.Text.Lazy.unpack . fromMaybe "") return $+      Success.asEither $+      success' $+      HashMap.fromList params++lookup :: Text -> Params Text+lookup name =+  Params $ ReaderT $ \hashMap ->+    maybe (Success.failure $ "No parameter named" <> name) Success.success $+    HashMap.lookup name hashMap++-- |+-- Given a parameter parser and name attempts to get it.+param :: Param a -> Text -> Params a+param paramParser name =+  lookup name >>= onText+  where+    onText text =+      Params $ ReaderT $ const $ either Success.failure Success.success $ paramParser text++-- |+-- A single parameter parser.+type Param a =+  Text -> Either Text a+
− library/Scotty/QueryParser.hs
@@ -1,58 +0,0 @@--- |--- A DSL for parsing of an HTTP request query parameters.-module Scotty.QueryParser-(-  Params,-  run,-  lookup,-  param,-  Param,-)-where--import BasePrelude hiding (lookup)-import Control.Monad.Trans.Class-import Control.Monad.Trans.Reader-import Data.Text.Lazy (Text)-import qualified Web.Scotty.Trans as Scotty-import qualified Success.Pure as Success-import qualified Data.HashMap.Strict as HashMap-import qualified Data.Text.Lazy----- |--- A multiple parameters parser.-newtype Params a =-  Params (ReaderT (HashMap.HashMap Text Text) (Success.Success Text) a)-  deriving (Functor, Applicative, Alternative, Monad, MonadPlus)--run :: Params a -> forall m e. (Scotty.ScottyError e, Monad m) => Scotty.ActionT e m a-run (Params (ReaderT success')) =-  Scotty.params >>= onParams-  where-    onParams params =-      either (Scotty.raise . Scotty.stringError . Data.Text.Lazy.unpack . fromMaybe "") return $-      Success.asEither $-      success' $-      HashMap.fromList params--lookup :: Text -> Params Text-lookup name =-  Params $ ReaderT $ \hashMap ->-    maybe (Success.failure $ "No parameter named" <> name) Success.success $-    HashMap.lookup name hashMap---- |--- Given a parameter parser and name attempts to get it.-param :: Param a -> Text -> Params a-param paramParser name =-  lookup name >>= onText-  where-    onText text =-      Params $ ReaderT $ const $ either Success.failure Success.success $ paramParser text---- |--- A single parameter parser.-type Param a =-  Text -> Either Text a-
scotty-params-parser.cabal view
@@ -1,7 +1,7 @@ name:   scotty-params-parser version:-  0.3+  0.4 synopsis:   HTTP-request's query parameters parser abstraction for "scotty" category:@@ -42,7 +42,7 @@     Haskell2010   other-modules:   exposed-modules:-    Scotty.QueryParser+    Scotty.ParamsParser   build-depends:     --     scotty >= 0.11 && < 0.12,