forked from OSS/graphql
Validate required input fields
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user