diff --git a/generate/swaggergen/g_docs.go b/generate/swaggergen/g_docs.go index 3750d19..2cb8fd5 100644 --- a/generate/swaggergen/g_docs.go +++ b/generate/swaggergen/g_docs.go @@ -947,7 +947,7 @@ func parseIdent(st *ast.Ident, k string, m *swagger.Schema, astPkgs []*ast.Packa m.Format = typeFormat[1] } enums := make(map[int]string) - enumValues := make(map[int]string) + enumValues := make(map[int]interface{}) for _, pkg := range astPkgs { for _, fl := range pkg.Files { for _, obj := range fl.Scope.Objects { @@ -975,7 +975,25 @@ func parseIdent(st *ast.Ident, k string, m *swagger.Schema, astPkgs []*ast.Packa continue } enums[int(val.Pos())] = fmt.Sprintf("%s = %s", vs.Names[i].Name, v.Value) - enumValues[int(val.Pos())] = v.Value + switch v.Kind { + case token.INT: + vv, err := strconv.Atoi(v.Value) + if err != nil { + beeLogger.Log.Warnf("Unknown type with BasicLit to int: %v\n", v.Value) + continue + } + enumValues[int(val.Pos())] = vv + case token.FLOAT: + vv, err := strconv.ParseFloat(v.Value, 64) + if err != nil { + beeLogger.Log.Warnf("Unknown type with BasicLit to int: %v\n", v.Value) + continue + } + enumValues[int(val.Pos())] = vv + default: + enumValues[int(val.Pos())] = strings.Trim(v.Value, `"`) + } + } } }