From 7ef0ad4712cc93f71cfb0784880b8d95fdb52f10 Mon Sep 17 00:00:00 2001 From: knry0329 Date: Sun, 26 Feb 2023 12:54:46 +0900 Subject: [PATCH] Check for required fields while parsing the schema --- internal/exec/packer/packer.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/exec/packer/packer.go b/internal/exec/packer/packer.go index ef9e0f98..5a3eafa8 100644 --- a/internal/exec/packer/packer.go +++ b/internal/exec/packer/packer.go @@ -199,6 +199,12 @@ func (b *Builder) MakeStructPacker(values []*ast.InputValueDefinition, typ refle if sf.PkgPath != "" { return nil, fmt.Errorf("field %q must be exported", sf.Name) } + if _, ok := v.Type.(*ast.NonNull); ok { + if sf.Type.Kind() == reflect.Ptr { + return nil, fmt.Errorf("field %q must be a non-pointer since the parameter is required", sf.Name) + } + } + fe.index = sf.Index ft := v.Type