Skip to content
Snippets Groups Projects
Commit c3047f34 authored by Johan de Klerk's avatar Johan de Klerk
Browse files

docs - get array info

parent 27579923
Branches
Tags
No related merge requests found
...@@ -102,7 +102,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string ...@@ -102,7 +102,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string
docMethod.RequestBody = &requestBody docMethod.RequestBody = &requestBody
if handler.RequestBodyType.Kind() == reflect.Struct && handler.RequestBodyType.NumField() > 0 { if handler.RequestBodyType.Kind() == reflect.Struct && handler.RequestBodyType.NumField() > 0 {
schema, err := StructSchema(handler.RequestBodyType.Field(0).Type) schema, err := StructSchema(handler.RequestBodyType)
if err != nil { if err != nil {
return Docs{}, err return Docs{}, err
} }
...@@ -115,7 +115,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string ...@@ -115,7 +115,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string
response, responseBodyTypeString := GetResponse(handler) response, responseBodyTypeString := GetResponse(handler)
docMethod.Responses = &response docMethod.Responses = &response
if handler.ResponseType.Kind() == reflect.Struct && handler.ResponseType.NumField() > 0 { if handler.ResponseType.Kind() == reflect.Struct && handler.ResponseType.NumField() > 0 {
schema, err := StructSchema(handler.ResponseType.Field(0).Type) schema, err := StructSchema(handler.ResponseType)
if err != nil { if err != nil {
return Docs{}, err return Docs{}, err
} }
...@@ -289,7 +289,12 @@ func StructSchema(t reflect.Type) (interface{}, error) { ...@@ -289,7 +289,12 @@ func StructSchema(t reflect.Type) (interface{}, error) {
schema["type"] = "object" schema["type"] = "object"
case reflect.Slice: case reflect.Slice:
schema["type"] = "array" schema["type"] = "array"
schema["items"] = t.Elem() element := reflect.TypeOf(t).Elem()
items, err := StructSchema(element)
if err != nil {
return nil, errors.Wrapf(err, "failed to document")
}
schema["items"] = items
default: default:
return nil, errors.Errorf("cannot generate schema for %v kind=%v", t, t.Kind()) return nil, errors.Errorf("cannot generate schema for %v kind=%v", t, t.Kind())
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment