Skip to content

Commit d18230b

Browse files
author
rawls238
committed
add rule class
1 parent 060315c commit d18230b

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

graphql/core/validation/rules.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,22 @@ def message(field_name, type):
148148

149149

150150
class UniqueFragmentNames(ValidationRule):
151-
pass
151+
def __init__(self, context):
152+
super(UniqueFragmentNames, self).__init__(context)
153+
self.known_fragment_names = {}
154+
155+
def enter_FragmentName(self, node, *args):
156+
fragment_name = node.name.value
157+
if fragment_name in self.known_fragment_names:
158+
return GraphQLError(
159+
self.duplicate_fragment_name_message(fragment_name),
160+
[ self.known_fragment_names[fragment_name], node.name]
161+
)
162+
self.known_fragment_names[fragment_name] = node.name
163+
164+
@staticmethod
165+
def duplicate_fragment_name_message(field):
166+
return 'There can only be one fragment named {}'.format(field)
152167

153168

154169
class KnownFragmentNames(ValidationRule):

0 commit comments

Comments
 (0)