diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-01-01 10:58:11 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-01-01 10:58:11 +0100 |
| commit | dd8f312cb3b0478a3f1e6215c73f47d49180be65 (patch) | |
| tree | 08aeba58c19e6800fd6361e7605a591871116389 /src/Language/GraphQL/Execute | |
| parent | d82d5a36b32934bfeb99bf8c99637977dfe725b4 (diff) | |
| download | graphql-dd8f312cb3b0478a3f1e6215c73f47d49180be65.tar.gz | |
Rewrite argument list to argument map
Diffstat (limited to 'src/Language/GraphQL/Execute')
| -rw-r--r-- | src/Language/GraphQL/Execute/Transform.hs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/Language/GraphQL/Execute/Transform.hs b/src/Language/GraphQL/Execute/Transform.hs index a85e451..5a9eef8 100644 --- a/src/Language/GraphQL/Execute/Transform.hs +++ b/src/Language/GraphQL/Execute/Transform.hs @@ -60,7 +60,6 @@ operations operations' = do operation :: Full.OperationDefinition -> TransformT Core.Operation operation (Full.SelectionSet sels) = operation $ Full.OperationDefinition Full.Query mempty mempty mempty sels --- TODO: Validate Variable definitions with substituter operation (Full.OperationDefinition Full.Query name _vars _dirs sels) = Core.Query name <$> appendSelection sels operation (Full.OperationDefinition Full.Mutation name _vars _dirs sels) @@ -73,7 +72,7 @@ selection :: TransformT (Either (Seq Core.Selection) Core.Selection) selection (Full.Field alias name arguments' directives' selections) = maybe (Left mempty) (Right . Core.SelectionField) <$> do - fieldArguments <- traverse argument arguments' + fieldArguments <- arguments arguments' fieldSelections <- appendSelection selections fieldDirectives <- Directive.selection <$> directives directives' let field' = Core.Field alias name fieldArguments fieldSelections @@ -147,12 +146,9 @@ fragmentDefinition (Full.FragmentDefinition name type' _ selections) = do arguments :: [Full.Argument] -> TransformT Core.Arguments arguments = fmap Core.Arguments . foldM go HashMap.empty where - go arguments' argument' = do - (Core.Argument name value') <- argument argument' - return $ HashMap.insert name value' arguments' - -argument :: Full.Argument -> TransformT Core.Argument -argument (Full.Argument n v) = Core.Argument n <$> value v + go arguments' (Full.Argument name value') = do + substitutedValue <- value value' + return $ HashMap.insert name substitutedValue arguments' value :: Full.Value -> TransformT Core.Value value (Full.Variable name) = lift (asks $ HashMap.lookup name) >>= lift . lift |
