From 4d523b7f2d2fb2449d6f8a66918d82c861118601 Mon Sep 17 00:00:00 2001 From: ryan-catapult Date: Mon, 9 Sep 2024 10:40:32 +0100 Subject: [PATCH 1/3] Adding entity resolver fix --- codegen/directives.gotpl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/codegen/directives.gotpl b/codegen/directives.gotpl index 18ad0237111..229b38705d1 100644 --- a/codegen/directives.gotpl +++ b/codegen/directives.gotpl @@ -18,8 +18,11 @@ {{- end }} {{- end }} if ec.directives.{{$directive.Name|ucFirst}} == nil { - var zeroVal {{$zeroVal}} - return zeroVal, errors.New("directive {{$directive.Name}} is not implemented") + {{- if ne $directive.Name "entityResolver" }} + return nil, errors.New("directive {{$directive.Name}} is not implemented") + {{- else }} + return directive{{ $i }}(ctx) + {{- end }} } return ec.directives.{{$directive.Name|ucFirst}}({{$directive.ResolveArgs $in $i }}) } From 5202980f0bed050105d670a7666a47d33c03b0a2 Mon Sep 17 00:00:00 2001 From: ryan-catapult Date: Mon, 9 Sep 2024 14:11:00 +0100 Subject: [PATCH 2/3] Reverting the zeroVal change --- codegen/directives.gotpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen/directives.gotpl b/codegen/directives.gotpl index 229b38705d1..97cca4c6a5d 100644 --- a/codegen/directives.gotpl +++ b/codegen/directives.gotpl @@ -19,7 +19,8 @@ {{- end }} if ec.directives.{{$directive.Name|ucFirst}} == nil { {{- if ne $directive.Name "entityResolver" }} - return nil, errors.New("directive {{$directive.Name}} is not implemented") + var zeroVal {{$zeroVal}} + return zeroVal, errors.New("directive {{$directive.Name}} is not implemented") {{- else }} return directive{{ $i }}(ctx) {{- end }} From 07d9d54f3d55da1e42005c8d75dfc350a346b596 Mon Sep 17 00:00:00 2001 From: ryan-catapult Date: Tue, 10 Sep 2024 12:16:01 +0100 Subject: [PATCH 3/3] Adding generated changes --- .../testdata/entityresolver/generated/exec.go | 15 +++++---------- .../testdata/explicitrequires/generated/exec.go | 15 +++++---------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/plugin/federation/testdata/entityresolver/generated/exec.go b/plugin/federation/testdata/entityresolver/generated/exec.go index c61cd4dd7b4..9e54a0e1bc6 100644 --- a/plugin/federation/testdata/entityresolver/generated/exec.go +++ b/plugin/federation/testdata/entityresolver/generated/exec.go @@ -1804,8 +1804,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloByNames(ctx context.Contex return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*model.MultiHello - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1887,8 +1886,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloMultipleRequiresByNames(ct return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*model.MultiHelloMultipleRequires - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1976,8 +1974,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloRequiresByNames(ctx contex return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*model.MultiHelloRequires - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -2063,8 +2060,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloWithErrorByNames(ctx conte return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*model.MultiHelloWithError - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -2146,8 +2142,7 @@ func (ec *executionContext) _Entity_findManyMultiPlanetRequiresNestedByNames(ctx return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*model.MultiPlanetRequiresNested - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } diff --git a/plugin/federation/testdata/explicitrequires/generated/exec.go b/plugin/federation/testdata/explicitrequires/generated/exec.go index b3460c56916..760ee4b71a3 100644 --- a/plugin/federation/testdata/explicitrequires/generated/exec.go +++ b/plugin/federation/testdata/explicitrequires/generated/exec.go @@ -1257,8 +1257,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloByNames(ctx context.Contex return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*MultiHello - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1340,8 +1339,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloMultipleRequiresByNames(ct return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*MultiHelloMultipleRequires - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1429,8 +1427,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloRequiresByNames(ctx contex return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*MultiHelloRequires - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1516,8 +1513,7 @@ func (ec *executionContext) _Entity_findManyMultiHelloWithErrorByNames(ctx conte return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*MultiHelloWithError - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) } @@ -1599,8 +1595,7 @@ func (ec *executionContext) _Entity_findManyMultiPlanetRequiresNestedByNames(ctx return zeroVal, err } if ec.directives.EntityResolver == nil { - var zeroVal []*MultiPlanetRequiresNested - return zeroVal, errors.New("directive entityResolver is not implemented") + return directive0(ctx) } return ec.directives.EntityResolver(ctx, nil, directive0, multi) }