func (g *Generator) generateProperty(f *descriptor.Field) *spec.Schema { sc := new(spec.Schema) sc.ExtraProps = make(map[string]interface{}) if cmt := g.file.GetCommentText(f.CommentPath); cmt != nil { sc.Description = *cmt // glog.Fatalf("Comment: %s, %s", f.CommentPath, *cmt) } else { // glog.Fatalf("Comment: %s, %s", f.CommentPath, f.GetName()) } // Handle $ref setSchemaType(sc, f) // default value if exists if f.DefaultValue != nil { sc.Default = f.GetDefaultValue() } // export protobuf id // sc.ExtraProps["protobufId"] = f.GetNumber() // // if f.Options != nil { // sc.ExtraProps["ext_options"] = f.GetOptions() // } // // sc.ExtraProps["ext_extendee"] = f.GetExtendee() // sc.ExtraProps["ext_oneOfIndex"] = f.GetOneofIndex() return sc }
func (g *Generator) generateDefinition(msg *descriptor.Message) *spec.Schema { s := new(spec.Schema) s.Title = msg.GetModelName() s.Properties = make(map[string]spec.Schema) s.Required = make([]string, 0) s.ExtraProps = make(map[string]interface{}) // handle comments. if cmt := g.file.GetCommentText(msg.CommentPath); cmt != nil { s.Description = *cmt } // iterate over fields. for _, field := range msg.Fields { prop := g.generateProperty(field) if field.GetLabel() == godesc.FieldDescriptorProto_LABEL_REQUIRED { s.Required = append(s.Required, field.GetName()) } s.Properties[field.GetName()] = *prop } // if msg.EnumType != nil { // s.ExtraProps["ext_enumType"] = msg.GetEnumType() // } // if msg.Extension != nil { // s.ExtraProps["ext_extension"] = msg.GetExtension() // } // if msg.ExtensionRange != nil { // s.ExtraProps["ext_extensionRange"] = msg.GetExtensionRange() // } // if msg.NestedType != nil { // s.ExtraProps["ext_nestedType"] = msg.GetNestedType() // } // if msg.OneofDecl != nil { // s.ExtraProps["ext_oneofDecl"] = msg.GetOneofDecl() // } // if msg.Options != nil { // s.ExtraProps["ext_options"] = msg.GetOptions() // } return s }