http.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. const OError = require('./index')
  2. class HttpError extends OError {
  3. constructor(options) {
  4. super(options)
  5. this.statusCode = options.statusCode || 500
  6. }
  7. }
  8. class InternalServerError extends HttpError {
  9. constructor(options) {
  10. super({ message: 'Internal Server Error', statusCode: 500, ...options })
  11. }
  12. }
  13. class ServiceUnavailableError extends HttpError {
  14. constructor(options) {
  15. super({ message: 'Service Unavailable', statusCode: 503, ...options })
  16. }
  17. }
  18. class BadRequestError extends HttpError {
  19. constructor(options) {
  20. super({ message: 'Bad Request', statusCode: 400, ...options })
  21. }
  22. }
  23. class UnauthorizedError extends HttpError {
  24. constructor(options) {
  25. super({ message: 'Unauthorized', statusCode: 401, ...options })
  26. }
  27. }
  28. class ForbiddenError extends HttpError {
  29. constructor(options) {
  30. super({ message: 'Forbidden', statusCode: 403, ...options })
  31. }
  32. }
  33. class NotFoundError extends HttpError {
  34. constructor(options) {
  35. super({ message: 'Not Found', statusCode: 404, ...options })
  36. }
  37. }
  38. class MethodNotAllowedError extends HttpError {
  39. constructor(options) {
  40. super({ message: 'Method Not Allowed', statusCode: 405, ...options })
  41. }
  42. }
  43. class NotAcceptableError extends HttpError {
  44. constructor(options) {
  45. super({ message: 'Not Acceptable', statusCode: 406, ...options })
  46. }
  47. }
  48. class ConflictError extends HttpError {
  49. constructor(options) {
  50. super({ message: 'Conflict', statusCode: 409, ...options })
  51. }
  52. }
  53. class UnprocessableEntityError extends HttpError {
  54. constructor(options) {
  55. super({ message: 'Unprocessable Entity', statusCode: 422, ...options })
  56. }
  57. }
  58. class TooManyRequestsError extends HttpError {
  59. constructor(options) {
  60. super({ message: 'Too Many Requests', statusCode: 429, ...options })
  61. }
  62. }
  63. module.exports = {
  64. HttpError,
  65. InternalServerError,
  66. ServiceUnavailableError,
  67. BadRequestError,
  68. UnauthorizedError,
  69. ForbiddenError,
  70. NotFoundError,
  71. MethodNotAllowedError,
  72. NotAcceptableError,
  73. ConflictError,
  74. UnprocessableEntityError,
  75. TooManyRequestsError
  76. }