CombineOperationParameters combines the Parameters defined at a global level (Parameters defined for all methods on a given path) with the Parameters defined at a local level (Parameters defined for a specific path), preferring the locally defined parameter over the global one
(globalParams []ParameterDefinition, localParams []ParameterDefinition)
| 1374 | |
| 1375 | // CombineOperationParameters combines the Parameters defined at a global level (Parameters defined for all methods on a given path) with the Parameters defined at a local level (Parameters defined for a specific path), preferring the locally defined parameter over the global one |
| 1376 | func CombineOperationParameters(globalParams []ParameterDefinition, localParams []ParameterDefinition) ([]ParameterDefinition, error) { |
| 1377 | allParams := make([]ParameterDefinition, 0, len(globalParams)+len(localParams)) |
| 1378 | dupCheck := make(map[string]map[string]string) |
| 1379 | for _, p := range localParams { |
| 1380 | if dupCheck[p.In] == nil { |
| 1381 | dupCheck[p.In] = make(map[string]string) |
| 1382 | } |
| 1383 | if _, exist := dupCheck[p.In][p.ParamName]; !exist { |
| 1384 | dupCheck[p.In][p.ParamName] = "local" |
| 1385 | allParams = append(allParams, p) |
| 1386 | } else { |
| 1387 | return nil, fmt.Errorf("duplicate local parameter %s/%s", p.In, p.ParamName) |
| 1388 | } |
| 1389 | } |
| 1390 | for _, p := range globalParams { |
| 1391 | if dupCheck[p.In] == nil { |
| 1392 | dupCheck[p.In] = make(map[string]string) |
| 1393 | } |
| 1394 | if t, exist := dupCheck[p.In][p.ParamName]; !exist { |
| 1395 | dupCheck[p.In][p.ParamName] = "global" |
| 1396 | allParams = append(allParams, p) |
| 1397 | } else if t == "global" { |
| 1398 | return nil, fmt.Errorf("duplicate global parameter %s/%s", p.In, p.ParamName) |
| 1399 | } |
| 1400 | } |
| 1401 | |
| 1402 | return allParams, nil |
| 1403 | } |
no outgoing calls
no test coverage detected