diff --git a/src/httproute.cpp b/src/httproute.cpp index e757b358..dd3ebb6a 100644 --- a/src/httproute.cpp +++ b/src/httproute.cpp @@ -50,6 +50,32 @@ Input::Input(const QString& inputname, const std::set& path) : { } +Input::Input(const QString& inputname, const QString& dataType, const std::set& paths) : + name(inputname), + description(), + isRequired(false), + paramType("query"), + dataType(dataType), + values(), + visibility(Visibility::Show), + paths(paths) +{ +} + +Input::Input(const QString& inputname, const QString& dataType, const QString& desc, const std::set& paths) : + name(inputname), + description(desc), + isRequired(false), + paramType("query"), + dataType(dataType), + values(), + visibility(Visibility::Show), + paths(paths) +{ +} + + + Input::Input(const QString& inputname, const QString& desc, const QStringList& vals, const std::set& path) : name(inputname), description(desc), diff --git a/src/httproute.h b/src/httproute.h index 3a342ada..c00d1c13 100644 --- a/src/httproute.h +++ b/src/httproute.h @@ -17,6 +17,8 @@ class QTTPSHARED_EXPORT Input Input(Input&& from); Input(const Input& from); Input(const QString& name, const std::set& paths = std::set()); + Input(const QString& name, const QString& dataType, const std::set& paths = std::set()); + Input(const QString& name, const QString& dataType, const QString& desc, const std::set& paths = std::set()); Input(const QString& name, const QString& desc, const QStringList& values, const std::set& paths = std::set()); Input& operator=(const Input& from); diff --git a/src/httpserver.h b/src/httpserver.h index e0177637..fa41eb62 100644 --- a/src/httpserver.h +++ b/src/httpserver.h @@ -155,6 +155,19 @@ class QTTPSHARED_EXPORT HttpServer : public QObject return action; } + template std::shared_ptr addActionAndRegister(P& param, + Visibility visibilty = Visibility::Show) + { + std::shared_ptr action(new T(param)); + HttpServer::addAction(action); + auto routes = action->getRoutes(); + for(const auto & path : routes) + { + HttpServer::registerRoute(action, path, visibilty); + } + return action; + } + /** * @brief A template method to register a processor via the Processor interface. */ diff --git a/www/index.html b/www/index.html index 721c3144..02c91841 100644 --- a/www/index.html +++ b/www/index.html @@ -39,11 +39,12 @@