diff --git a/modules/http_server_simple/simple_web_server_request.cpp b/modules/http_server_simple/simple_web_server_request.cpp index e7ce64fd6..b8039b2fc 100644 --- a/modules/http_server_simple/simple_web_server_request.cpp +++ b/modules/http_server_simple/simple_web_server_request.cpp @@ -86,6 +86,13 @@ String SimpleWebServerRequest::get_get_parameter(const String &key) const { return _get_parameters[key]; } +void SimpleWebServerRequest::set_post_parameter(const String &key, const String &value) { + _post_parameters[key] = value; +} +void SimpleWebServerRequest::set_get_parameter(const String &key, const String &value) { + _get_parameters[key] = value; +} + void SimpleWebServerRequest::send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) { ERR_FAIL_COND(!_server); diff --git a/modules/http_server_simple/simple_web_server_request.h b/modules/http_server_simple/simple_web_server_request.h index 57a639f0a..2040d0dc6 100644 --- a/modules/http_server_simple/simple_web_server_request.h +++ b/modules/http_server_simple/simple_web_server_request.h @@ -38,6 +38,9 @@ public: virtual String get_post_parameter(const String &key) const; virtual String get_get_parameter(const String &key) const; + virtual void set_post_parameter(const String &key, const String &value); + virtual void set_get_parameter(const String &key, const String &value); + virtual void send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code = HTTPServerEnums::HTTP_STATUS_CODE_302_FOUND); virtual void send(); virtual void send_file(const String &p_file_path); diff --git a/modules/web/http/web_server_request.cpp b/modules/web/http/web_server_request.cpp index 5acf37a3c..cea957dbf 100644 --- a/modules/web/http/web_server_request.cpp +++ b/modules/web/http/web_server_request.cpp @@ -213,6 +213,11 @@ String WebServerRequest::get_get_parameter(const String &key) const { return ""; } +void WebServerRequest::set_post_parameter(const String &key, const String &value) { +} +void WebServerRequest::set_get_parameter(const String &key, const String &value) { +} + HTTPServerEnums::HTTPStatusCode WebServerRequest::get_status_code() const { return _status_code; } @@ -556,6 +561,9 @@ void WebServerRequest::_bind_methods() { ClassDB::bind_method(D_METHOD("get_post_parameter", "key"), &WebServerRequest::get_post_parameter); ClassDB::bind_method(D_METHOD("get_get_parameter", "key"), &WebServerRequest::get_get_parameter); + ClassDB::bind_method(D_METHOD("set_post_parameter", "key", "value"), &WebServerRequest::set_post_parameter); + ClassDB::bind_method(D_METHOD("set_get_parameter", "key", "value"), &WebServerRequest::set_get_parameter); + ClassDB::bind_method(D_METHOD("get_status_code"), &WebServerRequest::get_status_code); ClassDB::bind_method(D_METHOD("set_status_code", "val"), &WebServerRequest::set_status_code); ADD_PROPERTY(PropertyInfo(Variant::INT, "status_code"), "set_status_code", "get_status_code"); diff --git a/modules/web/http/web_server_request.h b/modules/web/http/web_server_request.h index 530db698a..7be2ccffd 100644 --- a/modules/web/http/web_server_request.h +++ b/modules/web/http/web_server_request.h @@ -81,6 +81,9 @@ public: virtual String get_post_parameter(const String &key) const; virtual String get_get_parameter(const String &key) const; + virtual void set_post_parameter(const String &key, const String &value); + virtual void set_get_parameter(const String &key, const String &value); + HTTPServerEnums::HTTPStatusCode get_status_code() const; void set_status_code(const HTTPServerEnums::HTTPStatusCode status_code); diff --git a/modules/web/http/web_server_request_scriptable.cpp b/modules/web/http/web_server_request_scriptable.cpp index 2721e48f8..28e926bb7 100644 --- a/modules/web/http/web_server_request_scriptable.cpp +++ b/modules/web/http/web_server_request_scriptable.cpp @@ -1,7 +1,7 @@ #include "web_server_request_scriptable.h" -#include "web_server.h" #include "web_node.h" +#include "web_server.h" String WebServerRequestScriptable::get_cookie(const String &key) { return call("_get_cookie", key); @@ -47,6 +47,13 @@ String WebServerRequestScriptable::get_get_parameter(const String &key) const { return const_cast(this)->call("_get_get_parameter", key); } +void WebServerRequestScriptable::set_post_parameter(const String &key, const String &value) { + call("_set_post_parameter", key, value); +} +void WebServerRequestScriptable::set_get_parameter(const String &key, const String &value) { + call("_set_get_parameter", key, value); +} + void WebServerRequestScriptable::send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) { call("_send_redirect", location, status_code); } @@ -130,6 +137,11 @@ String WebServerRequestScriptable::_get_get_parameter(const String &key) const { return ""; } +void WebServerRequestScriptable::_set_post_parameter(const String &key, const String &value) { +} +void WebServerRequestScriptable::_set_get_parameter(const String &key, const String &value) { +} + void WebServerRequestScriptable::_send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code) { } @@ -225,6 +237,9 @@ void WebServerRequestScriptable::_bind_methods() { BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_post_parameter", PropertyInfo(Variant::STRING, "key"))); BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_get_parameter", PropertyInfo(Variant::STRING, "key"))); + BIND_VMETHOD(MethodInfo("_set_post_parameter", PropertyInfo(Variant::STRING, "key"), PropertyInfo(Variant::STRING, "value"))); + BIND_VMETHOD(MethodInfo("_set_get_parameter", PropertyInfo(Variant::STRING, "key"), PropertyInfo(Variant::STRING, "value"))); + BIND_VMETHOD(MethodInfo("_send_redirect", PropertyInfo(Variant::STRING, "location"), PropertyInfo(Variant::INT, "status_code"))); BIND_VMETHOD(MethodInfo("_compile_body")); @@ -255,6 +270,9 @@ void WebServerRequestScriptable::_bind_methods() { ClassDB::bind_method(D_METHOD("_get_post_parameter", "key"), &WebServerRequestScriptable::_get_post_parameter); ClassDB::bind_method(D_METHOD("_get_get_parameter", "key"), &WebServerRequestScriptable::_get_get_parameter); + ClassDB::bind_method(D_METHOD("_set_post_parameter", "key", "value"), &WebServerRequestScriptable::_set_post_parameter); + ClassDB::bind_method(D_METHOD("_set_get_parameter", "key", "value"), &WebServerRequestScriptable::_set_get_parameter); + ClassDB::bind_method(D_METHOD("_send_redirect", "location", "status_code"), &WebServerRequestScriptable::_send_redirect); ClassDB::bind_method(D_METHOD("_compile_body"), &WebServerRequestScriptable::_compile_body); diff --git a/modules/web/http/web_server_request_scriptable.h b/modules/web/http/web_server_request_scriptable.h index 2cc7f8028..7c5820c9f 100644 --- a/modules/web/http/web_server_request_scriptable.h +++ b/modules/web/http/web_server_request_scriptable.h @@ -38,6 +38,9 @@ public: virtual String get_post_parameter(const String &key) const; virtual String get_get_parameter(const String &key) const; + virtual void set_post_parameter(const String &key, const String &value); + virtual void set_get_parameter(const String &key, const String &value); + virtual void send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code = HTTPServerEnums::HTTP_STATUS_CODE_302_FOUND); virtual void compile_body(); virtual void compile_and_send_body(); @@ -52,21 +55,24 @@ public: virtual void update(); // script virtuals - String _get_cookie(const String &key); + virtual String _get_cookie(const String &key); - HTTPServerEnums::HTTPMethod _get_method() const; + virtual HTTPServerEnums::HTTPMethod _get_method() const; - void _parse_files(); - int _get_file_count() const; - String _get_file_file_name(const int index) const; - String _get_file_key(const int index) const; - int _get_file_length(const int index) const; - PoolByteArray _get_file_data(const int index) const; - String _get_file_data_str(const int index) const; + virtual void _parse_files(); + virtual int _get_file_count() const; + virtual String _get_file_file_name(const int index) const; + virtual String _get_file_key(const int index) const; + virtual int _get_file_length(const int index) const; + virtual PoolByteArray _get_file_data(const int index) const; + virtual String _get_file_data_str(const int index) const; - String _get_parameter(const String &key) const; - String _get_post_parameter(const String &key) const; - String _get_get_parameter(const String &key) const; + virtual String _get_parameter(const String &key) const; + virtual String _get_post_parameter(const String &key) const; + virtual String _get_get_parameter(const String &key) const; + + virtual void _set_post_parameter(const String &key, const String &value); + virtual void _set_get_parameter(const String &key, const String &value); void _send_redirect(const String &location, const HTTPServerEnums::HTTPStatusCode status_code); void _compile_body();