18 #ifndef NAF_HANDLERS_ROOTHANDLER
19 #define NAF_HANDLERS_ROOTHANDLER
32 #include "functions/action.h"
33 #include "yaml-cpp/yaml.h"
34 #include "Poco/Exception.h"
35 #include <Poco/Net/HTTPRequestHandler.h>
36 #include <Poco/Net/HTTPServerRequest.h>
37 #include <Poco/Net/HTTPResponse.h>
38 #include <Poco/Net/HTTPServerResponse.h>
40 #include <Poco/StreamCopier.h>
41 #include "Poco/Data/Session.h"
42 #include "Poco/Data/MySQL/Connector.h"
43 #include <Poco/Data/MySQL/MySQLException.h>
44 #include <Poco/Data/Statement.h>
45 #include <Poco/Format.h>
46 #include <Poco/NumberFormatter.h>
47 #include <Poco/JSON/JSON.h>
48 #include <Poco/JSON/JSONException.h>
49 #include <Poco/JSON/Array.h>
50 #include <Poco/JSON/Object.h>
51 #include <Poco/JSON/Parser.h>
52 #include <Poco/Dynamic/Var.h>
53 #include <Poco/Dynamic/Struct.h>
54 #include "Poco/Net/HTTPServerRequestImpl.h"
55 #include "Poco/Net/SecureStreamSocket.h"
56 #include "Poco/Net/SecureServerSocket.h"
57 #include "Poco/Net/X509Certificate.h"
59 #include "nebulaatomConfig.h"
60 #include "tools/sessions_manager.h"
61 #include "query/database_manager.h"
62 #include "tools/route.h"
63 #include "http/common_responses.h"
64 #include "security/security_verification.h"
65 #include "tools/manage_json.h"
66 #include "security/user.h"
67 #include "functions/functions_manager.h"
68 #include "query/condition.h"
69 #include "tools/settings_manager.h"
70 #include "tools/output_logger.h"
71 #include "http/methods.h"
72 #include "http/body.h"
79 class ReferenceContainer;
85 using namespace Poco::Net;
86 using namespace Poco::Data::Keywords;
88 using Poco::Data::Session;
89 using Poco::Data::Statement;
93 public HTTPRequestHandler
104 std::string content_type;
105 Net::NameValueCollection content_type_parameters;
113 auto& var = properties_;
116 std::shared_ptr<NAF::Tools::Route>& get_requested_route()
118 auto& var = requested_route_;
123 auto& var = functions_manager_;
126 Functions::Function::Ptr& get_current_function()
128 auto& var = current_function_;
132 virtual void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response);
134 Functions::Function::Ptr AddFunction_(std::string endpoint, HTTP::EnumMethods method);
135 virtual void Process_() = 0;
136 bool VerifySession_();
137 bool VerifyPermissions_();
138 bool IdentifyRoute_();
139 void ManageRequestBody_();
142 void SetupProperties_();
143 void IdentifyParameters_(Functions::Action::Ptr action);
144 void IdentifyParameters_();
147 struct Properties properties_;
148 std::list<std::string> targets_;
149 std::shared_ptr<NAF::Tools::Route> requested_route_;
150 Functions::FunctionsManager functions_manager_;
151 Functions::Function::Ptr current_function_;
Definition: functions_manager.h:23
Definition: common_responses.h:69
Definition: root_handler.h:98
Definition: root_handler.h:101