From ea60399ea31c65548dacd606d8c10d65bbcc7bc4 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Sat, 28 Dec 2019 14:04:50 +0100 Subject: [PATCH] Added new helper functions --- src/app/HttpConstants.h | 81 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/src/app/HttpConstants.h b/src/app/HttpConstants.h index 0e37fc2..a53bad9 100644 --- a/src/app/HttpConstants.h +++ b/src/app/HttpConstants.h @@ -6,8 +6,87 @@ class HttpConstants public: enum HttpRequestMethod {UNDEFINED, GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH}; enum HttpVersion {UNKNOWN, HTTP_0_9, HTTP_1_1, HTTP_1_0, HTTP_2_0}; - enum HttpMIMEType{UNKNOWN_MIME, TEXT_PLAIN, TEXT_CSS, TEXT_HTML, TEXT_JAVASCRIPT, APPLICATION_JSON, APPLICATION_X_WWW_FORM_URLENCODED, IMAGE_PNG, IMAGE_JPEG, AUDIO_MPEG, APPLICATION_OCTET_STREAM}; + enum HttpMIMEType {UNKNOWN_MIME, TEXT_PLAIN, TEXT_CSS, TEXT_HTML, TEXT_JAVASCRIPT, APPLICATION_JSON, APPLICATION_X_WWW_FORM_URLENCODED, IMAGE_PNG, IMAGE_JPEG, AUDIO_MPEG, APPLICATION_OCTET_STREAM}; enum HTTP_CODE {UNDEFINED_CODE, _100, _101, _200, _400, _401, _403, _404, _405, _500, _501}; + + static char *httpVersionToString(HttpVersion v, char *buffer) + { + if(buffer == NULL)return NULL; + + switch(v) + { + case HttpVersion::HTTP_0_9: + strcpy_P(buffer, PSTR("HTTP/0.9")); + break; + case HttpVersion::HTTP_1_1: + strcpy_P(buffer, PSTR("HTTP/1.1")); + break; + case HttpVersion::HTTP_1_0: + strcpy_P(buffer, PSTR("HTTP/1.0")); + break; + case HttpVersion::HTTP_2_0: + strcpy_P(buffer, PSTR("HTTP/2.0")); + break; + default: + strcpy_P(buffer, PSTR("HTTP/1.1")); + break; + } + + return buffer; + } + + static char *httpMIMETypeToString(HttpMIMEType m, char *buffer) + { + if(buffer == NULL)return NULL; + + switch(m) + { + case HttpMIMEType::TEXT_PLAIN: + sprintf_P(buffer, PSTR("text/plain")); + break; + case HttpMIMEType::APPLICATION_JSON: + sprintf_P(buffer, PSTR("application/json")); + break; + case HttpMIMEType::APPLICATION_X_WWW_FORM_URLENCODED: + sprintf_P(buffer, PSTR("application/x-www-form-urlencoded")); + break; + default: + sprintf_P(buffer, PSTR("text/plain")); + break; + } + + return buffer; + } + + static HTTP_CODE numberToHTTP_CODE(uint32_t code) + { + switch(code) + { + case 100: + return HTTP_CODE::_100; + case 101: + return HTTP_CODE::_101; + case 200: + return HTTP_CODE::_200; + case 400: + return HTTP_CODE::_400; + case 401: + return HTTP_CODE::_401; + case 403: + return HTTP_CODE::_403; + case 404: + return HTTP_CODE::_404; + case 405: + return HTTP_CODE::_405; + case 500: + return HTTP_CODE::_500; + case 501: + return HTTP_CODE::_501; + default : + return HTTP_CODE::UNDEFINED_CODE; + } + } + protected: private: };