Skip to content

Commit

Permalink
fix validation error for message that message argument is unresolved
Browse files Browse the repository at this point in the history
  • Loading branch information
goccy committed Aug 5, 2024
1 parent 73eadce commit 9308d18
Show file tree
Hide file tree
Showing 10 changed files with 15 additions and 108 deletions.
24 changes: 0 additions & 24 deletions _examples/02_simple/federation/federation_grpc_federation.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 0 additions & 16 deletions _examples/06_alias/federation/federation_grpc_federation.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 0 additions & 16 deletions generator/testdata/expected_alias.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions generator/testdata/expected_create_post.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions generator/testdata/expected_ref_env.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 0 additions & 16 deletions generator/testdata/expected_simple_aggregation.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 15 additions & 10 deletions resolver/resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -1132,6 +1132,11 @@ func (r *Resolver) validateMessageFields(ctx *context, msg *Message, builder *so
if msg.Rule == nil {
return
}
if msg.Rule.MessageArgument == nil {
// message argument does not exist because this message is not used from anywhere.
// In this case, validation step is skipped.
return
}
for _, field := range msg.Fields {
builder := builder.WithField(field.Name)
if !field.HasRule() {
Expand Down Expand Up @@ -2798,23 +2803,23 @@ func (r *Resolver) resolveMessageArgument(ctx *context, files []*File) {
}

for _, root := range graph.Roots {
resMsg := root.Message

var msgArg *Message
if resMsg.Rule.MessageArgument != nil {
msgArg = resMsg.Rule.MessageArgument
} else {
msgArg = newMessageArgument(resMsg)
resMsg.Rule.MessageArgument = msgArg
}
rootMsg := root.Message

// The message argument of the response message is the request message.
// Therefore, the request message is retrieved from the response message.
reqMsg := r.lookupRequestMessageFromResponseMessage(resMsg)
reqMsg := r.lookupRequestMessageFromResponseMessage(rootMsg)
if reqMsg == nil {
continue
}

var msgArg *Message
if rootMsg.Rule.MessageArgument != nil {
msgArg = rootMsg.Rule.MessageArgument
} else {
msgArg = newMessageArgument(rootMsg)
rootMsg.Rule.MessageArgument = msgArg
}

msgArg.Fields = append(msgArg.Fields, reqMsg.Fields...)
r.cachedMessageMap[msgArg.FQDN()] = msgArg
r.resolveMessageArgumentRecursive(ctx, root, svcMsgSet)
Expand Down
10 changes: 0 additions & 10 deletions resolver/resolver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ func TestSimpleAggregation(t *testing.T) {
AddFieldWithAlias("foo", resolver.StringType, ref.Field(t, "org.user", "User.AttrA", "foo")).
SetRule(
testutil.NewMessageRuleBuilder().
SetMessageArgument(ref.Message(t, "org.federation", "User_AttrAArgument")).
SetAlias(ref.Message(t, "org.user", "User.AttrA")).
Build(t),
).
Expand All @@ -140,7 +139,6 @@ func TestSimpleAggregation(t *testing.T) {
AddFieldWithAlias("bar", resolver.BoolType, ref.Field(t, "org.user", "User.AttrB", "bar")).
SetRule(
testutil.NewMessageRuleBuilder().
SetMessageArgument(ref.Message(t, "org.federation", "User_AttrBArgument")).
SetAlias(ref.Message(t, "org.user", "User.AttrB")).
Build(t),
).
Expand Down Expand Up @@ -1605,10 +1603,6 @@ func TestAlias(t *testing.T) {
SetRule(
testutil.NewMessageRuleBuilder().
SetAlias(ref.Message(t, "org.post", "PostConditionA")).
SetMessageArgument(
testutil.NewMessageBuilder("GetPostRequest_ConditionAArgument").
Build(t),
).
Build(t),
).
Build(t),
Expand All @@ -1618,10 +1612,6 @@ func TestAlias(t *testing.T) {
SetRule(
testutil.NewMessageRuleBuilder().
SetAlias(ref.Message(t, "org.post", "PostConditionB")).
SetMessageArgument(
testutil.NewMessageBuilder("GetPostRequest_ConditionBArgument").
Build(t),
).
Build(t),
).
Build(t),
Expand Down

0 comments on commit 9308d18

Please sign in to comment.