mirror of
https://github.com/go-kratos/kratos.git
synced 2025-02-19 19:10:08 +02:00
fix: cmd http embed message path generate (#1561)
fix: cmd http embed message path generate (#1561)
This commit is contained in:
parent
210e414e6f
commit
2d026f1f95
@ -160,16 +160,22 @@ func buildMethodDesc(g *protogen.GeneratedFile, m *protogen.Method, method, path
|
||||
vars := buildPathVars(m, path)
|
||||
fields := m.Input.Desc.Fields()
|
||||
for _, v := range vars {
|
||||
fd := fields.ByName(protoreflect.Name(v))
|
||||
if fd == nil {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mERROR\u001B[m: The corresponding field '%s' declaration in message could not be found in '%s'\n", v, path)
|
||||
os.Exit(2)
|
||||
}
|
||||
if fd.IsMap() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a map.\n", v)
|
||||
}
|
||||
if fd.IsList() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a list.\n", v)
|
||||
for _, field := range strings.Split(v, ".") {
|
||||
if strings.TrimSpace(field) == "" {
|
||||
continue
|
||||
}
|
||||
fd := fields.ByName(protoreflect.Name(field))
|
||||
if fd == nil {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mERROR\u001B[m: The corresponding field '%s' declaration in message could not be found in '%s'\n", v, path)
|
||||
os.Exit(2)
|
||||
}
|
||||
if fd.IsMap() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a map.\n", v)
|
||||
} else if fd.IsList() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a list.\n", v)
|
||||
} else if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind {
|
||||
fields = fd.Message().Fields()
|
||||
}
|
||||
}
|
||||
}
|
||||
return &methodDesc{
|
||||
|
Loading…
x
Reference in New Issue
Block a user