1 package explicitrequires
2
3
4
5
6
7 import (
8 "context"
9 "fmt"
10
11 "github.com/99designs/gqlgen/plugin/federation/testdata/explicitrequires/generated"
12 )
13
14
15 func (r *entityResolver) FindHelloByName(ctx context.Context, name string) (*generated.Hello, error) {
16 return &generated.Hello{
17 Name: name,
18 }, nil
19 }
20
21
22 func (r *entityResolver) FindHelloMultiSingleKeysByKey1AndKey2(ctx context.Context, key1 string, key2 string) (*generated.HelloMultiSingleKeys, error) {
23 panic(fmt.Errorf("not implemented"))
24 }
25
26
27 func (r *entityResolver) FindHelloWithErrorsByName(ctx context.Context, name string) (*generated.HelloWithErrors, error) {
28 if name == "inject error" {
29 return nil, generated.ErrResolvingHelloWithErrorsByName
30 } else if name == "" {
31 return nil, generated.ErrEmptyKeyResolvingHelloWithErrorsByName
32 }
33
34 return &generated.HelloWithErrors{
35 Name: name,
36 }, nil
37 }
38
39
40 func (r *entityResolver) FindManyMultiHelloByNames(ctx context.Context, reps []*generated.MultiHelloByNamesInput) ([]*generated.MultiHello, error) {
41 results := []*generated.MultiHello{}
42
43 for _, item := range reps {
44 results = append(results, &generated.MultiHello{
45 Name: item.Name + " - from multiget",
46 })
47 }
48
49 return results, nil
50 }
51
52
53 func (r *entityResolver) FindManyMultiHelloMultipleRequiresByNames(ctx context.Context, reps []*generated.MultiHelloMultipleRequiresByNamesInput) ([]*generated.MultiHelloMultipleRequires, error) {
54 results := make([]*generated.MultiHelloMultipleRequires, len(reps))
55
56 for i := range reps {
57 results[i] = &generated.MultiHelloMultipleRequires{
58 Name: reps[i].Name,
59 }
60 }
61
62 return results, nil
63 }
64
65
66 func (r *entityResolver) FindManyMultiHelloRequiresByNames(ctx context.Context, reps []*generated.MultiHelloRequiresByNamesInput) ([]*generated.MultiHelloRequires, error) {
67 results := make([]*generated.MultiHelloRequires, len(reps))
68
69 for i := range reps {
70 results[i] = &generated.MultiHelloRequires{
71 Name: reps[i].Name,
72 }
73 }
74
75 return results, nil
76 }
77
78
79 func (r *entityResolver) FindManyMultiHelloWithErrorByNames(ctx context.Context, reps []*generated.MultiHelloWithErrorByNamesInput) ([]*generated.MultiHelloWithError, error) {
80 return nil, fmt.Errorf("error resolving MultiHelloWorldWithError")
81 }
82
83
84 func (r *entityResolver) FindManyMultiPlanetRequiresNestedByNames(ctx context.Context, reps []*generated.MultiPlanetRequiresNestedByNamesInput) ([]*generated.MultiPlanetRequiresNested, error) {
85 worlds := map[string]*generated.World{
86 "earth": {
87 Foo: "A",
88 },
89 "mars": {
90 Foo: "B",
91 },
92 }
93
94 results := make([]*generated.MultiPlanetRequiresNested, len(reps))
95
96 for i := range reps {
97 name := reps[i].Name
98 world, ok := worlds[name]
99 if !ok {
100 return nil, fmt.Errorf("unknown planet: %s", name)
101 }
102
103 results[i] = &generated.MultiPlanetRequiresNested{
104 Name: name,
105 World: world,
106 }
107 }
108
109 return results, nil
110 }
111
112
113 func (r *entityResolver) FindPlanetMultipleRequiresByName(ctx context.Context, name string) (*generated.PlanetMultipleRequires, error) {
114 return &generated.PlanetMultipleRequires{Name: name}, nil
115 }
116
117
118 func (r *entityResolver) FindPlanetRequiresByName(ctx context.Context, name string) (*generated.PlanetRequires, error) {
119 return &generated.PlanetRequires{
120 Name: name,
121 }, nil
122 }
123
124
125 func (r *entityResolver) FindPlanetRequiresNestedByName(ctx context.Context, name string) (*generated.PlanetRequiresNested, error) {
126 worlds := map[string]*generated.World{
127 "earth": {
128 Foo: "A",
129 },
130 "mars": {
131 Foo: "B",
132 },
133 }
134 world, ok := worlds[name]
135 if !ok {
136 return nil, fmt.Errorf("unknown planet: %s", name)
137 }
138
139 return &generated.PlanetRequiresNested{
140 Name: name,
141 World: world,
142 }, nil
143 }
144
145
146 func (r *entityResolver) FindWorldByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*generated.World, error) {
147 return &generated.World{
148 Hello: &generated.Hello{
149 Name: helloName,
150 },
151 Foo: foo,
152 }, nil
153 }
154
155
156 func (r *entityResolver) FindWorldNameByName(ctx context.Context, name string) (*generated.WorldName, error) {
157 return &generated.WorldName{
158 Name: name,
159 }, nil
160 }
161
162
163 func (r *entityResolver) FindWorldWithMultipleKeysByHelloNameAndFoo(ctx context.Context, helloName string, foo string) (*generated.WorldWithMultipleKeys, error) {
164 return &generated.WorldWithMultipleKeys{
165 Hello: &generated.Hello{
166 Name: helloName,
167 },
168 Foo: foo,
169 }, nil
170 }
171
172
173 func (r *entityResolver) FindWorldWithMultipleKeysByBar(ctx context.Context, bar int) (*generated.WorldWithMultipleKeys, error) {
174 return &generated.WorldWithMultipleKeys{
175 Bar: bar,
176 }, nil
177 }
178
179
180 func (r *Resolver) Entity() generated.EntityResolver { return &entityResolver{r} }
181
182 type entityResolver struct{ *Resolver }
183
View as plain text