package encode // import "udico.de/uditaren/opier/encode" import ( "bytes" "fmt" "strings" "udico.de/opier/openapi" ) func (e Encoder) Api(server openapi.Server) string { tBuf := bytes.Buffer{} tBuf.WriteString(fmt.Sprintf("package %v\n\n", e.Package)) tBuf.WriteString(e.GeneratedHeader()) tBuf.WriteString("import (\n \"fmt\"\n \"reflect\"\n \"strings\"\n)\n\n") tBuf.WriteString(Comment(server.Description, 0)) tBuf.WriteString(fmt.Sprintf("const %v_OPENAPI_BASE string = \"%v\"\n\n", strings.ToUpper(e.Package), server.Url)) // replace func: tBuf.WriteString("func replacePathParam(path *string, param string, value interface{}) {\n") tBuf.WriteString(" *path = strings.ReplaceAll(*path, \"{\" + param + \"}\", fmt.Sprintf(\"%v\", value))\n") tBuf.WriteString("}\n\n") tBuf.WriteString(`// Join anything into a string func joinIfArray(v interface{}) string { tBuf := &strings.Builder{} switch reflect.TypeOf(v).Kind() { case reflect.Slice, reflect.Array: s := reflect.ValueOf(v) for i:=0;i 0 { tBuf.WriteString(",") } tBuf.WriteString(fmt.Sprintf("%v", s.Index(i))) } default: tBuf.WriteString(fmt.Sprintf("%v", v)) } return tBuf.String() } `) return tBuf.String() }