errors.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package router
  2. import (
  3. "fmt"
  4. "net/http"
  5. "time"
  6. "github.com/imgproxy/imgproxy/v3/ierrors"
  7. )
  8. type (
  9. RouteNotDefinedError string
  10. RequestCancelledError string
  11. RequestTimeoutError string
  12. )
  13. func newRouteNotDefinedError(path string) *ierrors.Error {
  14. return ierrors.Wrap(
  15. RouteNotDefinedError(fmt.Sprintf("Route for %s is not defined", path)),
  16. 1,
  17. ierrors.WithStatusCode(http.StatusNotFound),
  18. ierrors.WithPublicMessage("Not found"),
  19. ierrors.WithShouldReport(false),
  20. )
  21. }
  22. func (e RouteNotDefinedError) Error() string { return string(e) }
  23. func newRequestCancelledError(after time.Duration) *ierrors.Error {
  24. return ierrors.Wrap(
  25. RequestCancelledError(fmt.Sprintf("Request was cancelled after %v", after)),
  26. 1,
  27. ierrors.WithStatusCode(499),
  28. ierrors.WithPublicMessage("Cancelled"),
  29. ierrors.WithShouldReport(false),
  30. )
  31. }
  32. func (e RequestCancelledError) Error() string { return string(e) }
  33. func newRequestTimeoutError(after time.Duration) *ierrors.Error {
  34. return ierrors.Wrap(
  35. RequestTimeoutError(fmt.Sprintf("Request was timed out after %v", after)),
  36. 1,
  37. ierrors.WithStatusCode(http.StatusServiceUnavailable),
  38. ierrors.WithPublicMessage("Gateway Timeout"),
  39. ierrors.WithShouldReport(false),
  40. )
  41. }
  42. func (e RequestTimeoutError) Error() string { return string(e) }