fix include names
cppcheck isn't smart enough to recognize these are c++ headers, not c
headers. Considering we're already inconsistent about our naming, it's
easier to just be consistent, and move the last few files to use .hpp
instead of .h.
Tested:
Code builds, no changes.
Signed-off-by: Ed Tanous <ed@tanous.net>
Change-Id: Ic348d695f8527fa4a0ded53f433e1558c319db40
diff --git a/http/http_request.hpp b/http/http_request.hpp
new file mode 100644
index 0000000..d9d6cf7
--- /dev/null
+++ b/http/http_request.hpp
@@ -0,0 +1,80 @@
+#pragma once
+
+#include "common.hpp"
+#include "sessions.hpp"
+
+#include <boost/asio/io_context.hpp>
+#include <boost/asio/ip/address.hpp>
+#include <boost/beast/http/message.hpp>
+#include <boost/beast/http/string_body.hpp>
+#include <boost/beast/websocket.hpp>
+#include <boost/url/url_view.hpp>
+
+namespace crow
+{
+
+struct Request
+{
+ boost::beast::http::request<boost::beast::http::string_body>& req;
+ boost::beast::http::fields& fields;
+ std::string_view url{};
+ boost::urls::url_view urlView{};
+ boost::urls::url_view::params_type urlParams{};
+ bool isSecure{false};
+
+ const std::string& body;
+
+ boost::asio::io_context* ioService{};
+ boost::asio::ip::address ipAddress;
+
+ std::shared_ptr<persistent_data::UserSession> session;
+
+ std::string userRole{};
+ Request(
+ boost::beast::http::request<boost::beast::http::string_body>& reqIn) :
+ req(reqIn),
+ fields(reqIn.base()), body(reqIn.body())
+ {}
+
+ boost::beast::http::verb method() const
+ {
+ return req.method();
+ }
+
+ std::string_view getHeaderValue(std::string_view key) const
+ {
+ return req[key];
+ }
+
+ std::string_view getHeaderValue(boost::beast::http::field key) const
+ {
+ return req[key];
+ }
+
+ std::string_view methodString() const
+ {
+ return req.method_string();
+ }
+
+ std::string_view target() const
+ {
+ return req.target();
+ }
+
+ unsigned version() const
+ {
+ return req.version();
+ }
+
+ bool isUpgrade() const
+ {
+ return boost::beast::websocket::is_upgrade(req);
+ }
+
+ bool keepAlive() const
+ {
+ return req.keep_alive();
+ }
+};
+
+} // namespace crow