summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/Trans.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2020-01-01 10:58:11 +0100
committerEugen Wissner <belka@caraus.de>2020-01-01 10:58:11 +0100
commitdd8f312cb3b0478a3f1e6215c73f47d49180be65 (patch)
tree08aeba58c19e6800fd6361e7605a591871116389 /src/Language/GraphQL/Trans.hs
parentd82d5a36b32934bfeb99bf8c99637977dfe725b4 (diff)
downloadgraphql-dd8f312cb3b0478a3f1e6215c73f47d49180be65.tar.gz
Rewrite argument list to argument map
Diffstat (limited to 'src/Language/GraphQL/Trans.hs')
-rw-r--r--src/Language/GraphQL/Trans.hs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Language/GraphQL/Trans.hs b/src/Language/GraphQL/Trans.hs
index 3eef904..24752a2 100644
--- a/src/Language/GraphQL/Trans.hs
+++ b/src/Language/GraphQL/Trans.hs
@@ -1,7 +1,7 @@
-- | Monad transformer stack used by the @GraphQL@ resolvers.
module Language.GraphQL.Trans
( ActionT(..)
- , Context(Context)
+ , Context(..)
, argument
) where
@@ -11,7 +11,6 @@ import Control.Monad.IO.Class (MonadIO(..))
import Control.Monad.Trans.Class (MonadTrans(..))
import Control.Monad.Trans.Except (ExceptT)
import Control.Monad.Trans.Reader (ReaderT, asks)
-import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HashMap
import Data.Maybe (fromMaybe)
import Data.Text (Text)
@@ -19,7 +18,9 @@ import Language.GraphQL.AST.Core
import Prelude hiding (lookup)
-- | Resolution context holds resolver arguments.
-newtype Context = Context (HashMap Name Value)
+newtype Context = Context
+ { arguments :: Arguments
+ }
-- | Monad transformer stack used by the resolvers to provide error handling
-- and resolution context (resolver arguments).
@@ -57,7 +58,7 @@ instance Monad m => MonadPlus (ActionT m) where
-- be optional then).
argument :: MonadIO m => Name -> ActionT m Value
argument argumentName = do
- argumentValue <- ActionT $ lift $ asks lookup
+ argumentValue <- ActionT $ lift $ asks $ lookup . arguments
pure $ fromMaybe Null argumentValue
where
- lookup (Context argumentMap) = HashMap.lookup argumentName argumentMap
+ lookup (Arguments argumentMap) = HashMap.lookup argumentName argumentMap