From 3c1eb1ec99868b8c0baa582a593ab4081581d63d Mon Sep 17 00:00:00 2001 From: y-syo Date: Tue, 11 Feb 2025 13:52:45 +0100 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip(i?= =?UTF-8?q?ncludes):=20very=20very=20wip=20of=20the=20headers=20(this=20co?= =?UTF-8?q?mmit=20should=20be=20deleted=20later)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/default.hpp | 20 +++++++ includes/requests/HttpRequest.hpp | 78 ++++++++++++++++++++++---- includes/requests/HttpResponse.hpp | 53 ++++++++++------- includes/requests/default.hpp | 32 +++++++++-- includes/server/default.hpp | 27 +++++++++ includes/webserv.hpp | 33 +++++++++++ src/main.cpp | 17 ++---- src/requests_handling/HttpRequests.cpp | 5 +- src/requests_handling/HttpResponse.cpp | 6 +- 9 files changed, 217 insertions(+), 54 deletions(-) create mode 100644 includes/default.hpp create mode 100644 includes/server/default.hpp diff --git a/includes/default.hpp b/includes/default.hpp new file mode 100644 index 0000000..fc55644 --- /dev/null +++ b/includes/default.hpp @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* default.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mmoussou headers; - std::string body; }; -HttpRequest parseRequest(const std::string &rawRequest); +class Get: public http::IRequest { +public: + Get(void); + Get(std::string &data); + ~Get(void); -#endif + void parse(const http::IRequest &request); + + http::Response execute(void); + +}; + +class Post: public http::IRequest { +public: + Post(void); + Post(std::string &data); + ~Post(void); + + void parse(const http::IRequest &request); + + http::Response execute(void); + +}; + +class Delete: public http::IRequest { +public: + Delete(void); + Delete(std::string &data); + ~Delete(void); + + void parse(const http::IRequest &request); + + http::Response execute(void); + +}; + +} // -namespace http +} // -namespace webserv + +#endif // __WEBSERV_REQUESTS_HTTP_REQUEST_HPP__ diff --git a/includes/requests/HttpResponse.hpp b/includes/requests/HttpResponse.hpp index 5a6cde5..b618248 100644 --- a/includes/requests/HttpResponse.hpp +++ b/includes/requests/HttpResponse.hpp @@ -6,38 +6,49 @@ /* By: mmoussou (); + Response(); - std::string str(void) const; + * or : (if too different ? idk tbh) + Response(Get const req); + Response(Post const req); + */ + ~Response(void); -protected: - std::string _protocol; - size_t _status_code; - std::string _status_text; - std::map _headers; - std::string _body; + std::string getProtocol(void) const; + size_t getStatusCode(void) const; + std::string getStatusText(void) const; + + void setProtocol(std::string const protocol); + void setStatusCode(size_t const status_code); + void setStatusText(std::string const status_text); + +private: + std::string _protocol; + size_t _status_code; + std::string _status_text; }; -class HttpGet: public IHttpResponse { -public: - HttpGet(void); - HttpGet(const HttpRequest &request); - ~HttpResponse(void); +} // -namespace http +} // -namespace webserv - void parseRequest(const HttpRequest &request); -} - -#endif +#endif // __WEBSERV_REQUESTS_HTTP_RESPONSE_HPP__ diff --git a/includes/requests/default.hpp b/includes/requests/default.hpp index 9584306..220f40c 100644 --- a/includes/requests/default.hpp +++ b/includes/requests/default.hpp @@ -6,13 +6,13 @@ /* By: mmoussou #include @@ -20,7 +20,31 @@ #include #include +#include "default.hpp" #include "requests/HttpRequest.hpp" #include "requests/HttpResponse.hpp" -#endif +namespace webserv { +namespace http { + +class IMessage { +public: + virtual std::map getHeaders(void) const; + virtual std::string getBody(void) const; + + virtual void setHeaders(std::map const headers); + virtual void setBody(std::string const body); + + virtual void addHeader(std::string const name, std::string const value); + virtual void rmHeader(std::string const name); + +protected: + std::map _headers; + std::string _body; + +}; + +} // -namespace http +} // -namespace webserv + +#endif // __WEBSERV_REQUESTS_DEFAULT_HPP__ diff --git a/includes/server/default.hpp b/includes/server/default.hpp new file mode 100644 index 0000000..5ca19f5 --- /dev/null +++ b/includes/server/default.hpp @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* default.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mmoussou +#include +#include +#include +#include +#include +#include +#include +#include + +namespace webserv { + + + +} //-namespace webserv + +#endif // __WEBSERV_WEBSERV_HPP__ diff --git a/src/main.cpp b/src/main.cpp index fb4b71b..190f426 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,20 +6,11 @@ /* By: mmoussou -#include -#include -#include -#include -#include -#include -#include -#include - +#include "webserv.hpp" #include "requests/default.hpp" #define PORT 8080 @@ -39,7 +30,7 @@ int main() { std::cerr << "Error registering signal handler!" << std::endl; return 1; } - +/* // create a socket server_socket = socket(AF_INET, SOCK_STREAM, 0); if (server_socket == -1) { @@ -110,6 +101,6 @@ int main() { close(client_socket); } - close(server_socket); + close(server_socket);*/ return 0; } diff --git a/src/requests_handling/HttpRequests.cpp b/src/requests_handling/HttpRequests.cpp index 74fc0a3..09fc1f4 100644 --- a/src/requests_handling/HttpRequests.cpp +++ b/src/requests_handling/HttpRequests.cpp @@ -6,12 +6,12 @@ /* By: mmoussou _headers; std::string _body;*/ - +/* HttpResponse::HttpResponse(const HttpRequest &request): _protocol(request.protocol) { std::ifstream file(request.target.c_str(), std::ios::binary); @@ -55,4 +55,4 @@ std::string HttpResponse::str(void) const response << this->_body; return (response.str()); -} +}*/