18 #ifndef ATOM_HANDLERS_ROOTHANDLER
19 #define ATOM_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
102 std::shared_ptr<Atom::Tools::Route>& get_requested_route()
104 auto& var = requested_route_;
109 auto& var = functions_manager_;
112 Functions::Function::Ptr& get_current_function()
114 auto& var = current_function_;
118 virtual void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response);
120 Functions::Function::Ptr AddFunction_(std::string endpoint, HTTP::EnumMethods method);
121 virtual void Process_() = 0;
122 bool VerifySession_();
123 bool VerifyPermissions_();
124 bool IdentifyRoute_();
125 void ManageRequestBody_();
128 std::list<std::string> targets_;
129 std::shared_ptr<Atom::Tools::Route> requested_route_;
131 Functions::Function::Ptr current_function_;
Definition: functions_manager.h:23
Definition: common_responses.h:69
Definition: root_handler.h:97