(err error, details map[string]any)
| 469 | } |
| 470 | |
| 471 | func collectJSONErrorDetails(err error, details map[string]any) { |
| 472 | if err == nil { |
| 473 | return |
| 474 | } |
| 475 | if detailed, ok := err.(jsonDetailedError); ok { |
| 476 | for key, value := range detailed.JSONErrorDetails() { |
| 477 | details[key] = value |
| 478 | } |
| 479 | } |
| 480 | |
| 481 | if joined, ok := err.(interface{ Unwrap() []error }); ok { |
| 482 | for _, inner := range joined.Unwrap() { |
| 483 | collectJSONErrorDetails(inner, details) |
| 484 | } |
| 485 | } |
| 486 | if wrapped, ok := err.(interface{ Unwrap() error }); ok { |
| 487 | collectJSONErrorDetails(wrapped.Unwrap(), details) |
| 488 | } |
| 489 | } |
| 490 | |
| 491 | func rateLimitRetryAfterSeconds(err error) (uint64, bool) { |
| 492 | var rateLimitErr dropboxauth.RateLimitAPIError |
no test coverage detected