|
8 | 8 | "log" |
9 | 9 | "os" |
10 | 10 | "path" |
| 11 | + "regexp" |
11 | 12 | "sort" |
12 | 13 | "strconv" |
13 | 14 | "strings" |
@@ -368,17 +369,17 @@ func ProcessAPI(shortName string, api *openapi3.Swagger) *OpenAPI { |
368 | 369 | } |
369 | 370 |
|
370 | 371 | o := &Operation{ |
371 | | - HandlerName: slug(name), |
372 | | - GoName: toGoName(name, true), |
373 | | - Use: use, |
374 | | - Aliases: aliases, |
375 | | - Short: short, |
376 | | - Long: escapeString(description), |
377 | | - Method: method, |
378 | | - CanHaveBody: method == "Post" || method == "Put" || method == "Patch", |
379 | | - ReturnType: returnType, |
380 | | - Path: path, |
381 | | - AllParams: params, |
| 372 | + HandlerName: Slug(name), |
| 373 | + GoName: toGoName(name, true), |
| 374 | + Use: use, |
| 375 | + Aliases: aliases, |
| 376 | + Short: short, |
| 377 | + Long: escapeString(description), |
| 378 | + Method: method, |
| 379 | + CanHaveBody: method == "Post" || method == "Put" || method == "Patch", |
| 380 | + ReturnType: returnType, |
| 381 | + Path: path, |
| 382 | + AllParams: params, |
382 | 383 | RequiredParams: requiredParams, |
383 | 384 | OptionalParams: optionalParams, |
384 | 385 | MediaType: reqMt, |
@@ -418,7 +419,7 @@ func ProcessAPI(shortName string, api *openapi3.Swagger) *OpenAPI { |
418 | 419 | } |
419 | 420 |
|
420 | 421 | for name, waiter := range waiters { |
421 | | - waiter.CLIName = slug(name) |
| 422 | + waiter.CLIName = Slug(name) |
422 | 423 | waiter.GoName = toGoName(name+"-waiter", true) |
423 | 424 | waiter.Operation = operationMap[waiter.OperationID] |
424 | 425 | waiter.Use = usage(name, waiter.Operation.RequiredParams) |
@@ -512,18 +513,20 @@ func escapeString(value string) string { |
512 | 513 | return transformed |
513 | 514 | } |
514 | 515 |
|
515 | | -func slug(operationID string) string { |
516 | | - transformed := strings.ToLower(operationID) |
| 516 | +func Slug(operationID string) string { |
| 517 | + re, _ := regexp.Compile("([a-z])([A-Z])") |
| 518 | + transformed := re.ReplaceAllString(operationID, "$1-$2") |
| 519 | + transformed = strings.ToLower(transformed) |
517 | 520 | transformed = strings.Replace(transformed, "_", "-", -1) |
518 | 521 | transformed = strings.Replace(transformed, " ", "-", -1) |
519 | 522 | return transformed |
520 | 523 | } |
521 | 524 |
|
522 | 525 | func usage(name string, requiredParams []*Param) string { |
523 | | - usage := slug(name) |
| 526 | + usage := Slug(name) |
524 | 527 |
|
525 | 528 | for _, p := range requiredParams { |
526 | | - usage += " " + slug(p.Name) |
| 529 | + usage += " " + Slug(p.Name) |
527 | 530 | } |
528 | 531 |
|
529 | 532 | return usage |
@@ -555,7 +558,7 @@ func getParams(path *openapi3.PathItem, httpMethod string) []*Param { |
555 | 558 | } |
556 | 559 | } |
557 | 560 |
|
558 | | - cliName := slug(p.Value.Name) |
| 561 | + cliName := Slug(p.Value.Name) |
559 | 562 | if p.Value.Extensions[ExtName] != nil { |
560 | 563 | cliName = extStr(p.Value.Extensions[ExtName]) |
561 | 564 | } |
@@ -724,7 +727,7 @@ func generate(cmd *cobra.Command, args []string) { |
724 | 727 |
|
725 | 728 | funcs := template.FuncMap{ |
726 | 729 | "escapeStr": escapeString, |
727 | | - "slug": slug, |
| 730 | + "Slug": Slug, |
728 | 731 | "title": strings.Title, |
729 | 732 | } |
730 | 733 |
|
|
0 commit comments