parseHTTPRequestOpts extracts HTTPRequestOpts from interface{} parameters with defaults
(defaultTimeout int, params ...any)
| 620 | |
| 621 | // parseHTTPRequestOpts extracts HTTPRequestOpts from interface{} parameters with defaults |
| 622 | func parseHTTPRequestOpts(defaultTimeout int, params ...any) HTTPRequestOpts { |
| 623 | var options HTTPRequestOpts |
| 624 | |
| 625 | // Handle different parameter types for backward compatibility |
| 626 | if len(params) > 0 { |
| 627 | switch param := params[0].(type) { |
| 628 | case HTTPRequestOpts: |
| 629 | options = param |
| 630 | case int: |
| 631 | // Backward compatibility: int parameter is timeout in seconds |
| 632 | options.TimeoutSeconds = param |
| 633 | default: |
| 634 | options.TimeoutSeconds = defaultTimeout // Default if invalid type |
| 635 | } |
| 636 | } |
| 637 | // Set defaults if not provided |
| 638 | if options.TimeoutSeconds == 0 { |
| 639 | options.TimeoutSeconds = defaultTimeout |
| 640 | } |
| 641 | // Negative timeout means no timeout |
| 642 | if options.TimeoutSeconds < 0 { |
| 643 | options.TimeoutSeconds = 0 |
| 644 | } |
| 645 | if options.MaxRetries < 1 { |
| 646 | options.MaxRetries = 1 |
| 647 | } |
| 648 | |
| 649 | return options |
| 650 | } |
no outgoing calls
no test coverage detected