88 lines
5.7 KiB
C++
88 lines
5.7 KiB
C++
#include "esphttpstatuscodes.h"
|
|
|
|
// system includes
|
|
#include <utility>
|
|
|
|
// esp-idf includes
|
|
#include <esp_log.h>
|
|
|
|
namespace esphttpdutils {
|
|
namespace {
|
|
constexpr const char * const TAG = "ESPHTTPDUTILS";
|
|
} // namespace
|
|
|
|
const char *toString(ResponseStatus status)
|
|
{
|
|
switch (status)
|
|
{
|
|
case ResponseStatus::Continue: return "100 Continue";
|
|
case ResponseStatus::SwitchingProtocols: return "101 Switching Protocols";
|
|
case ResponseStatus::Processing: return "102 Processing";
|
|
case ResponseStatus::EarlyHints: return "103 Early Hints";
|
|
case ResponseStatus::Ok: return "200 OK";
|
|
case ResponseStatus::Created: return "201 Created";
|
|
case ResponseStatus::Accepted: return "202 Accepted";
|
|
case ResponseStatus::NonAuthoritativeInformation: return "203 Non-Authoritative Information";
|
|
case ResponseStatus::NoContent: return "204 No Content";
|
|
case ResponseStatus::ResetContent: return "205 Reset Content";
|
|
case ResponseStatus::PartialContent: return "206 Partial Content";
|
|
case ResponseStatus::MultiStatus: return "207 Multi-Status";
|
|
case ResponseStatus::AlreadyReported: return "208 Already Reported";
|
|
case ResponseStatus::IMUsed: return "226 IM Used";
|
|
case ResponseStatus::MultipleChoices: return "300 Multiple Choices";
|
|
case ResponseStatus::MovedPermanently: return "301 Moved Permanently";
|
|
case ResponseStatus::Found: return "302 Found";
|
|
case ResponseStatus::SeeOther: return "303 See Other";
|
|
case ResponseStatus::NotModified: return "304 Not Modified";
|
|
case ResponseStatus::UseProxy: return "305 Use Proxy";
|
|
case ResponseStatus::SwitchProxy: return "306 Switch Proxy";
|
|
case ResponseStatus::TemporaryRedirect: return "307 Temporary Redirect";
|
|
case ResponseStatus::PermanentRedirect: return "308 Permanent Redirect";
|
|
case ResponseStatus::BadRequest: return "400 Bad Request";
|
|
case ResponseStatus::Unauthorized: return "401 Unauthorized";
|
|
case ResponseStatus::PaymentRequired: return "402 Payment Required";
|
|
case ResponseStatus::Forbidden: return "403 Forbidden";
|
|
case ResponseStatus::NotFound: return "404 Not Found";
|
|
case ResponseStatus::MethodNotAllowed: return "405 Method Not Allowed";
|
|
case ResponseStatus::NotAcceptable: return "406 Not Acceptable";
|
|
case ResponseStatus::ProxyAuthenticationRequired: return "407 Proxy Authentication Required";
|
|
case ResponseStatus::RequestTimeout: return "408 Request Timeout";
|
|
case ResponseStatus::Conflict: return "409 Conflict";
|
|
case ResponseStatus::Gone: return "410 Gone";
|
|
case ResponseStatus::LengthRequired: return "411 Length Required";
|
|
case ResponseStatus::PreconditionFailed: return "412 Precondition Failed";
|
|
case ResponseStatus::PayloadTooLarge: return "413 Payload Too Large";
|
|
case ResponseStatus::URITooLong: return "414 URI Too Long";
|
|
case ResponseStatus::UnsupportedMediaType: return "415 Unsupported Media Type";
|
|
case ResponseStatus::RangeNotSatisfiable: return "416 Range Not Satisfiable";
|
|
case ResponseStatus::ExpectationFailed: return "417 Expectation Failed";
|
|
case ResponseStatus::ImATeapot: return "418 I'm a teapot";
|
|
case ResponseStatus::MisdirectedRequest: return "421 Misdirected Request";
|
|
case ResponseStatus::UnprocessableEntity: return "422 Unprocessable Entity";
|
|
case ResponseStatus::Locked: return "423 Locked";
|
|
case ResponseStatus::FailedDependency: return "424 Failed Dependency";
|
|
case ResponseStatus::TooEarly: return "425 Too Early";
|
|
case ResponseStatus::UpgradeRequired: return "426 Upgrade Required";
|
|
case ResponseStatus::PreconditionRequired: return "428 Precondition Required";
|
|
case ResponseStatus::TooManyRequests: return "429 Too Many Requests";
|
|
case ResponseStatus::RequestHeaderFieldsTooLarge: return "431 Request Header Fields Too Large";
|
|
case ResponseStatus::UnavailableForLegalReasons: return "451 Unavailable For Legal Reasons";
|
|
default:
|
|
ESP_LOGW(TAG, "unknown httpd_err_code_t(%i)", std::to_underlying(status));
|
|
[[fallthrough]];
|
|
case ResponseStatus::InternalServerError: return "500 Internal Server Error";
|
|
case ResponseStatus::NotImplemented: return "501 Not Implemented";
|
|
case ResponseStatus::BadGateway: return "502 Bad Gateway";
|
|
case ResponseStatus::ServiceUnavailable: return "503 Service Unavailable";
|
|
case ResponseStatus::GatewayTimeout: return "504 Gateway Timeout";
|
|
case ResponseStatus::HTTPVersionNotSupported: return "505 HTTP Version Not Supported";
|
|
case ResponseStatus::VariantAlsoNegotiates: return "506 Variant Also Negotiates";
|
|
case ResponseStatus::InsufficientStorage: return "507 Insufficient Storage";
|
|
case ResponseStatus::LoopDetected: return "508 Loop Detected";
|
|
case ResponseStatus::NotExtended: return "510 Not Extended";
|
|
case ResponseStatus::NetworkAuthenticationRequired: return "511 Network Authentication Required";
|
|
}
|
|
}
|
|
|
|
} // namespace esphttpdutils
|