|
1 | 1 | from typing import Optional, cast |
2 | 2 |
|
3 | | -from ...error import GraphQLError, INVALID |
| 3 | +from ...error import GraphQLError |
4 | 4 | from ...language import ( |
5 | 5 | BooleanValueNode, EnumValueNode, FloatValueNode, IntValueNode, |
6 | 6 | NullValueNode, ListValueNode, ObjectFieldNode, ObjectValueNode, |
|
9 | 9 | from ...type import ( |
10 | 10 | GraphQLEnumType, GraphQLScalarType, GraphQLType, |
11 | 11 | get_named_type, get_nullable_type, is_enum_type, is_input_object_type, |
12 | | - is_list_type, is_non_null_type, is_scalar_type) |
| 12 | + is_list_type, is_non_null_type, is_required_input_field, is_scalar_type) |
13 | 13 | from . import ValidationRule |
14 | 14 |
|
15 | 15 | __all__ = [ |
@@ -65,12 +65,11 @@ def enter_object_value(self, node: ObjectValueNode, *_args): |
65 | 65 | input_fields = type_.fields |
66 | 66 | field_node_map = {field.name.value: field for field in node.fields} |
67 | 67 | for field_name, field_def in input_fields.items(): |
68 | | - field_type = field_def.type |
69 | 68 | field_node = field_node_map.get(field_name) |
70 | | - if not field_node and is_non_null_type( |
71 | | - field_type) and field_def.default_value is INVALID: |
| 69 | + if not field_node and is_required_input_field(field_def): |
| 70 | + field_type = field_def.type |
72 | 71 | self.report_error(GraphQLError(required_field_message( |
73 | | - type_.name, field_name, field_type), node)) |
| 72 | + type_.name, field_name, str(field_type)), node)) |
74 | 73 |
|
75 | 74 | def enter_object_field(self, node: ObjectFieldNode, *_args): |
76 | 75 | parent_type = get_named_type(self.context.get_parent_input_type()) |
|
0 commit comments