diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-10-04 18:51:21 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-10-05 14:51:21 +0200 |
| commit | a91bc7f2d218ea2df308d3968587b60351625150 (patch) | |
| tree | 3c3170437b0c903e2c63540c028c1aaa4ff35c17 /src/Language/GraphQL/Execute/Transform.hs | |
| parent | d5f518fe827d3d279d6c37740820f296689539e4 (diff) | |
| download | graphql-a91bc7f2d218ea2df308d3968587b60351625150.tar.gz | |
Validate required input fields
Diffstat (limited to 'src/Language/GraphQL/Execute/Transform.hs')
| -rw-r--r-- | src/Language/GraphQL/Execute/Transform.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Language/GraphQL/Execute/Transform.hs b/src/Language/GraphQL/Execute/Transform.hs index 80e7a83..a8a2ae2 100644 --- a/src/Language/GraphQL/Execute/Transform.hs +++ b/src/Language/GraphQL/Execute/Transform.hs @@ -153,7 +153,7 @@ coerceVariableValues types operationDefinition variableValues = forEach variableDefinition coercedValues = do let Full.VariableDefinition variableName variableTypeName defaultValue _ = variableDefinition - let defaultValue' = constValue . Full.value <$> defaultValue + let defaultValue' = constValue . Full.node <$> defaultValue variableType <- lookupInputType variableTypeName types Coerce.matchFieldValues @@ -178,7 +178,8 @@ constValue (Full.ConstList l) = Type.List $ constValue <$> l constValue (Full.ConstObject o) = Type.Object $ HashMap.fromList $ constObjectField <$> o where - constObjectField (Full.ObjectField key value' _) = (key, constValue value') + constObjectField Full.ObjectField{value = value', ..} = + (name, constValue $ Full.node value') -- | Rewrites the original syntax tree into an intermediate representation used -- for query execution. @@ -384,7 +385,8 @@ value (Full.List list) = Type.List <$> traverse value list value (Full.Object object) = Type.Object . HashMap.fromList <$> traverse objectField object where - objectField (Full.ObjectField name value' _) = (name,) <$> value value' + objectField Full.ObjectField{value = value', ..} = + (name,) <$> value (Full.node value') input :: forall m. Full.Value -> State (Replacement m) (Maybe Input) input (Full.Variable name) = @@ -400,8 +402,8 @@ input (Full.Object object) = do objectFields <- foldM objectField HashMap.empty object pure $ pure $ Object objectFields where - objectField resultMap (Full.ObjectField name value' _) = - inputField resultMap name value' + objectField resultMap Full.ObjectField{value = value', ..} = + inputField resultMap name $ Full.node value' inputField :: forall m . HashMap Full.Name Input |
