From 587aab005ed1e4e9bd8966d44ff878891cbc8ce7 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 23 Nov 2019 09:49:12 +0100 Subject: Add a reader instance to the resolvers The Reader contains a Name/Value hashmap, which will contain resolver arguments. --- src/Language/GraphQL/Schema.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/Language/GraphQL/Schema.hs') diff --git a/src/Language/GraphQL/Schema.hs b/src/Language/GraphQL/Schema.hs index 984a4d7..afe068f 100644 --- a/src/Language/GraphQL/Schema.hs +++ b/src/Language/GraphQL/Schema.hs @@ -23,6 +23,7 @@ module Language.GraphQL.Schema import Control.Monad.IO.Class (MonadIO(..)) import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Except (runExceptT) +import Control.Monad.Trans.Reader (runReaderT) import Data.Foldable (find, fold) import Data.Maybe (fromMaybe) import qualified Data.Aeson as Aeson @@ -102,9 +103,10 @@ resolveFieldValue :: MonadIO m -> Field -> CollectErrsT m (HashMap Text Aeson.Value) resolveFieldValue f resolveRight fld@(Field _ _ args _) = do - result <- lift $ runExceptT . runActionT $ f args + result <- lift $ reader . runExceptT . runActionT $ f args either resolveLeft (resolveRight fld) result where + reader = flip runReaderT $ Context mempty resolveLeft err = do _ <- addErrMsg err return $ HashMap.singleton (aliasOrName fld) Aeson.Null -- cgit v1.2.3