Skip to content

Instantly share code, notes, and snippets.

@zRains
Created September 23, 2022 09:50
Show Gist options
  • Save zRains/2d411278e5e9e148ede7bcb6ad72dcc9 to your computer and use it in GitHub Desktop.
Save zRains/2d411278e5e9e148ede7bcb6ad72dcc9 to your computer and use it in GitHub Desktop.
From Nest.js
pub enum HttpStatus {
CONTINUE = 100,
SWITCHING_PROTOCOLS = 101,
PROCESSING = 102,
EARLYHINTS = 103,
OK = 200,
CREATED = 201,
ACCEPTED = 202,
NON_AUTHORITATIVE_INFORMATION = 203,
NO_CONTENT = 204,
RESET_CONTENT = 205,
PARTIAL_CONTENT = 206,
AMBIGUOUS = 300,
MOVED_PERMANENTLY = 301,
FOUND = 302,
SEE_OTHER = 303,
NOT_MODIFIED = 304,
TEMPORARY_REDIRECT = 307,
PERMANENT_REDIRECT = 308,
BAD_REQUEST = 400,
UNAUTHORIZED = 401,
PAYMENT_REQUIRED = 402,
FORBIDDEN = 403,
NOT_FOUND = 404,
METHOD_NOT_ALLOWED = 405,
NOT_ACCEPTABLE = 406,
PROXY_AUTHENTICATION_REQUIRED = 407,
REQUEST_TIMEOUT = 408,
CONFLICT = 409,
GONE = 410,
LENGTH_REQUIRED = 411,
PRECONDITION_FAILED = 412,
PAYLOAD_TOO_LARGE = 413,
URI_TOO_LONG = 414,
UNSUPPORTED_MEDIA_TYPE = 415,
REQUESTED_RANGE_NOT_SATISFIABLE = 416,
EXPECTATION_FAILED = 417,
I_AM_A_TEAPOT = 418,
MISDIRECTED = 421,
UNPROCESSABLE_ENTITY = 422,
FAILED_DEPENDENCY = 424,
PRECONDITION_REQUIRED = 428,
TOO_MANY_REQUESTS = 429,
INTERNAL_SERVER_ERROR = 500,
NOT_IMPLEMENTED = 501,
BAD_GATEWAY = 502,
SERVICE_UNAVAILABLE = 503,
GATEWAY_TIMEOUT = 504,
HTTP_VERSION_NOT_SUPPORTED = 505,
}
impl HttpStatus {
pub fn resolve(&self) -> (i32, String) {
match self {
HttpStatus::CONTINUE => (100, "Continue".into()),
HttpStatus::SWITCHING_PROTOCOLS => (101, "Switching Protocols".into()),
HttpStatus::PROCESSING => (102, "Processing".into()),
HttpStatus::EARLYHINTS => (103, "Earlyhints".into()),
HttpStatus::OK => (200, String::from("Ok")),
HttpStatus::CREATED => (201, "Created".into()),
HttpStatus::ACCEPTED => (202, "Accepted".into()),
HttpStatus::NON_AUTHORITATIVE_INFORMATION => {
(203, "Non Authoritative Information".into())
}
HttpStatus::NO_CONTENT => (204, "No Content".into()),
HttpStatus::RESET_CONTENT => (205, "Reset Content".into()),
HttpStatus::PARTIAL_CONTENT => (206, "Partial Content".into()),
HttpStatus::AMBIGUOUS => (300, "Ambiguous".into()),
HttpStatus::MOVED_PERMANENTLY => (301, "Moved Permanently".into()),
HttpStatus::FOUND => (302, "Found".into()),
HttpStatus::SEE_OTHER => (303, "See Other".into()),
HttpStatus::NOT_MODIFIED => (304, "Not Modfifed".into()),
HttpStatus::TEMPORARY_REDIRECT => (307, "Temporary Redirect".into()),
HttpStatus::PERMANENT_REDIRECT => (308, "Permanent Redirect".into()),
HttpStatus::BAD_REQUEST => (400, "Bad Request".into()),
HttpStatus::UNAUTHORIZED => (401, "Unauthorized".into()),
HttpStatus::PAYMENT_REQUIRED => (402, "Payment Required".into()),
HttpStatus::FORBIDDEN => (403, "Forbidden".into()),
HttpStatus::NOT_FOUND => (404, "Not Found".into()),
HttpStatus::METHOD_NOT_ALLOWED => (405, "Method Not Allowed".into()),
HttpStatus::NOT_ACCEPTABLE => (406, "Not Acceptable".into()),
HttpStatus::PROXY_AUTHENTICATION_REQUIRED => {
(407, "Proxy Authentication Required".into())
}
HttpStatus::REQUEST_TIMEOUT => (408, "Request Timeout".into()),
HttpStatus::CONFLICT => (409, "Conflict".into()),
HttpStatus::GONE => (401, "Gone".into()),
HttpStatus::LENGTH_REQUIRED => (411, "Length Required".into()),
HttpStatus::PRECONDITION_FAILED => (412, "Precondition Failed".into()),
HttpStatus::PAYLOAD_TOO_LARGE => (413, "Payload Too Large".into()),
HttpStatus::URI_TOO_LONG => (414, "URI Too Long".into()),
HttpStatus::UNSUPPORTED_MEDIA_TYPE => (415, "Unsupported Media Type".into()),
HttpStatus::REQUESTED_RANGE_NOT_SATISFIABLE => {
(416, "Required Range Not Satisfiable".into())
}
HttpStatus::EXPECTATION_FAILED => (417, "Expectation Failed".into()),
HttpStatus::I_AM_A_TEAPOT => (418, "I Am A Teapot".into()),
HttpStatus::MISDIRECTED => (421, "Misdirected".into()),
HttpStatus::UNPROCESSABLE_ENTITY => (422, "Unprocessable Entity".into()),
HttpStatus::FAILED_DEPENDENCY => (424, "Failed Dependency".into()),
HttpStatus::PRECONDITION_REQUIRED => (428, "Precondition Required".into()),
HttpStatus::TOO_MANY_REQUESTS => (429, "Too Many Requests".into()),
HttpStatus::INTERNAL_SERVER_ERROR => (500, "Internal Server Error".into()),
HttpStatus::NOT_IMPLEMENTED => (501, "Not Implemented".into()),
HttpStatus::BAD_GATEWAY => (502, "Bad Gateway".into()),
HttpStatus::SERVICE_UNAVAILABLE => (503, "Service Unavailable".into()),
HttpStatus::GATEWAY_TIMEOUT => (504, "Gateway Timeout".into()),
HttpStatus::HTTP_VERSION_NOT_SUPPORTED => (505, "Http Version Not Supported".into()),
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment