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