summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/Schema.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2019-11-23 09:49:12 +0100
committerEugen Wissner <belka@caraus.de>2019-11-23 09:49:12 +0100
commit587aab005ed1e4e9bd8966d44ff878891cbc8ce7 (patch)
treed86af4e8705104e78aa753017e5444ef707405e2 /src/Language/GraphQL/Schema.hs
parent625d7100ca123e5aff265fb843ec4979d76a9f7d (diff)
downloadgraphql-587aab005ed1e4e9bd8966d44ff878891cbc8ce7.tar.gz
Add a reader instance to the resolvers
The Reader contains a Name/Value hashmap, which will contain resolver arguments.
Diffstat (limited to 'src/Language/GraphQL/Schema.hs')
-rw-r--r--src/Language/GraphQL/Schema.hs4
1 files changed, 3 insertions, 1 deletions
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