|
19 | 19 | GraphQLList)
|
20 | 20 | from graphql.core.error import format_error
|
21 | 21 |
|
| 22 | +Being = GraphQLInterfaceType('Being', { |
| 23 | + 'name': GraphQLField(GraphQLString, { |
| 24 | + 'surname': GraphQLArgument(GraphQLBoolean), |
| 25 | + }) |
| 26 | +}) |
| 27 | + |
22 | 28 | Pet = GraphQLInterfaceType('Pet', {
|
23 | 29 | 'name': GraphQLField(GraphQLString, {
|
24 | 30 | 'surname': GraphQLArgument(GraphQLBoolean),
|
|
40 | 46 | 'doesKnowCommand': GraphQLField(GraphQLBoolean, {
|
41 | 47 | 'dogCommand': GraphQLArgument(DogCommand)
|
42 | 48 | })
|
43 |
| -}, interfaces=[Pet]) |
| 49 | +}, interfaces=[Being, Pet]) |
44 | 50 |
|
45 | 51 | Cat = GraphQLObjectType('Cat', lambda: {
|
46 | 52 | 'furColor': GraphQLField(FurColor)
|
47 |
| -}, interfaces=[Pet]) |
| 53 | +}, interfaces=[Being, Pet]) |
48 | 54 |
|
49 | 55 | CatOrDog = GraphQLUnionType('CatOrDog', [Dog, Cat])
|
50 | 56 |
|
51 |
| -Human = GraphQLObjectType('Human', { |
52 |
| - 'name': GraphQLField(GraphQLString, { |
53 |
| - 'surname': GraphQLArgument(GraphQLBoolean), |
54 |
| - }), |
55 |
| - 'pets': GraphQLField(GraphQLList(Pet)), |
| 57 | +Intelligent = GraphQLInterfaceType('Intelligent', { |
| 58 | + 'iq': GraphQLField(GraphQLInt), |
56 | 59 | })
|
57 | 60 |
|
| 61 | +Human = GraphQLObjectType( |
| 62 | + name='Human', |
| 63 | + interfaces=[Being, Intelligent], |
| 64 | + fields={ |
| 65 | + 'name': GraphQLField(GraphQLString, { |
| 66 | + 'surname': GraphQLArgument(GraphQLBoolean), |
| 67 | + }), |
| 68 | + 'pets': GraphQLField(GraphQLList(Pet)), |
| 69 | + 'iq': GraphQLField(GraphQLInt), |
| 70 | + }, |
| 71 | +) |
| 72 | + |
| 73 | +Alien = GraphQLObjectType( |
| 74 | + name='Alien', |
| 75 | + is_type_of=lambda *args: True, |
| 76 | + interfaces=[Being, Intelligent], |
| 77 | + fields={ |
| 78 | + 'iq': GraphQLField(GraphQLInt), |
| 79 | + 'name': GraphQLField(GraphQLString, { |
| 80 | + 'surname': GraphQLField(GraphQLBoolean), |
| 81 | + }), |
| 82 | + 'numEyes': GraphQLField(GraphQLInt), |
| 83 | + }, |
| 84 | +) |
| 85 | + |
| 86 | +DogOrHuman = GraphQLUnionType('DogOrHuman', [Dog, Human]) |
| 87 | + |
| 88 | +HumanOrAlien = GraphQLUnionType('HumanOrAlien', [Human, Alien]) |
| 89 | + |
58 | 90 | FurColor = GraphQLEnumType('FurColor', {
|
59 | 91 | 'BROWN': GraphQLEnumValue(0),
|
60 | 92 | 'BLACK': GraphQLEnumValue(1),
|
|
121 | 153 | 'dog': GraphQLField(Dog),
|
122 | 154 | 'pet': GraphQLField(Pet),
|
123 | 155 | 'catOrDog': GraphQLField(CatOrDog),
|
| 156 | + 'humanOrAlien': GraphQLField(HumanOrAlien), |
124 | 157 | 'complicatedArgs': GraphQLField(ComplicatedArgs),
|
125 | 158 | })
|
126 | 159 |
|
|
0 commit comments