18 #ifndef NAF_HANDLERS_ROOTHANDLER
19 #define NAF_HANDLERS_ROOTHANDLER
32 #include "yaml-cpp/yaml.h"
33 #include "Poco/Exception.h"
34 #include <Poco/Net/HTTPRequestHandler.h>
35 #include <Poco/Net/HTTPServerRequest.h>
36 #include <Poco/Net/HTTPResponse.h>
37 #include <Poco/Net/HTTPServerResponse.h>
39 #include <Poco/StreamCopier.h>
40 #include "Poco/Data/Session.h"
41 #include "Poco/Data/MySQL/Connector.h"
42 #include <Poco/Data/MySQL/MySQLException.h>
43 #include <Poco/Data/Statement.h>
44 #include <Poco/Format.h>
45 #include <Poco/NumberFormatter.h>
46 #include <Poco/JSON/JSON.h>
47 #include <Poco/JSON/JSONException.h>
48 #include <Poco/JSON/Array.h>
49 #include <Poco/JSON/Object.h>
50 #include <Poco/JSON/Parser.h>
51 #include <Poco/Dynamic/Var.h>
52 #include <Poco/Dynamic/Struct.h>
53 #include "Poco/Net/HTTPServerRequestImpl.h"
54 #include "Poco/Net/SecureStreamSocket.h"
55 #include "Poco/Net/SecureServerSocket.h"
56 #include "Poco/Net/X509Certificate.h"
58 #include "nebulaatomConfig.h"
59 #include "tools/sessions_manager.h"
60 #include "query/database_manager.h"
61 #include "tools/route.h"
62 #include "http/common_responses.h"
63 #include "security/security_verification.h"
64 #include "tools/manage_json.h"
65 #include "security/user.h"
66 #include "functions/functions_manager.h"
67 #include "query/condition.h"
68 #include "tools/settings_manager.h"
69 #include "tools/output_logger.h"
70 #include "http/methods.h"
71 #include "http/body.h"
78 class ReferenceContainer;
84 using namespace Poco::Net;
85 using namespace Poco::Data::Keywords;
87 using Poco::Data::Session;
88 using Poco::Data::Statement;
92 public HTTPRequestHandler
103 std::string content_type;
104 Net::NameValueCollection content_type_parameters;
112 auto& var = properties_;
115 std::shared_ptr<NAF::Tools::Route>& get_requested_route()
117 auto& var = requested_route_;
122 auto& var = functions_manager_;
125 Functions::Function::Ptr& get_current_function()
127 auto& var = current_function_;
131 virtual void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response);
133 Functions::Function::Ptr AddFunction_(std::string endpoint, HTTP::EnumMethods method);
134 virtual void Process_() = 0;
135 bool VerifySession_();
136 bool VerifyPermissions_();
137 bool IdentifyRoute_();
138 void ManageRequestBody_();
141 void SetupProperties_();
144 struct Properties properties_;
145 std::list<std::string> targets_;
146 std::shared_ptr<NAF::Tools::Route> requested_route_;
147 Functions::FunctionsManager functions_manager_;
148 Functions::Function::Ptr current_function_;
Definition: functions_manager.h:23
Definition: common_responses.h:69
Definition: root_handler.h:97
Definition: root_handler.h:100