ESP32 HTTPS Server
HTTPNode.hpp
1 #ifndef SRC_HTTPNODE_HPP_
2 #define SRC_HTTPNODE_HPP_
3 
4 #include <Arduino.h>
5 #include <string>
6 #undef min
7 #undef max
8 #include <vector>
9 #include "HTTPValidator.hpp"
10 
11 namespace httpsserver {
12 
18 };
19 
26 class HTTPNode {
27 public:
28  HTTPNode(const std::string &path, const HTTPNodeType nodeType, const std::string &tag = "");
29  virtual ~HTTPNode();
30 
35  const std::string _path;
36 
41  const std::string _tag;
42 
45 
46  bool hasPathParameter();
47  size_t getPathParamCount();
48  ssize_t getParamIdx(size_t);
49 
50  std::vector<HTTPValidator*> * getValidators();
51 
52  virtual std::string getMethod() = 0;
53 
61  void addPathParamValidator(size_t paramIdx, const HTTPValidationFunction * validator);
62 
63 private:
64  std::vector<size_t> _pathParamIdx;
65  std::vector<HTTPValidator*> _validators;
66 };
67 
68 } // namespace httpserver
69 
70 #endif
Definition: HTTPNode.hpp:15
const HTTPNodeType _nodeType
Definition: HTTPNode.hpp:44
Base class for a URL/route-handler in the server.
Definition: HTTPNode.hpp:26
Definition: HTTPNode.hpp:17
HTTPNodeType
Definition: HTTPNode.hpp:13
const std::string _path
Definition: HTTPNode.hpp:35
Definition: ConnectionContext.cpp:3
void addPathParamValidator(size_t paramIdx, const HTTPValidationFunction *validator)
Definition: HTTPNode.cpp:46
const std::string _tag
Definition: HTTPNode.hpp:41