From ef7b39bfb164f2e310f21b7dd5fafa180da1a15d Mon Sep 17 00:00:00 2001 From: Relintai Date: Mon, 1 Nov 2021 00:38:26 +0100 Subject: [PATCH] Added 2 url helpers to Request. --- core/http/request.cpp | 26 ++++++++++++++++++++++++++ core/http/request.h | 5 +++++ modules/drogon/request.cpp | 5 +++++ modules/drogon/request.h | 1 + 4 files changed, 37 insertions(+) diff --git a/core/http/request.cpp b/core/http/request.cpp index f7592ee..381e6dd 100644 --- a/core/http/request.cpp +++ b/core/http/request.cpp @@ -200,6 +200,32 @@ void Request::push_path() { _path_stack_pointer += 1; } +std::string Request::get_url_root() const { + std::string path = "/"; + + for (uint32_t i = 0; i < _path_stack_pointer; ++i) { + path += _path_stack[i]; + path += "/"; + } + + return path; +} + +std::string Request::get_url_site() const { + std::string path = get_host(); + + for (uint32_t i = _path_stack_pointer; i < _path_stack.size(); ++i) { + path += _path_stack[i]; + path += "/"; + } + + return path; +} + +std::string Request::get_host() const { + return ""; +} + void Request::update() { } diff --git a/core/http/request.h b/core/http/request.h index c4e21a6..f901ce9 100644 --- a/core/http/request.h +++ b/core/http/request.h @@ -60,6 +60,7 @@ public: virtual void send_error(int error_code); virtual void reset(); virtual std::string parser_get_path(); + virtual std::string get_host() const; void setup_url_stack(); std::string get_path() const; @@ -72,6 +73,10 @@ public: void pop_path(); void push_path(); + std::string get_url_root() const; + std::string get_url_site() const; + + virtual void update(); virtual void pool(); diff --git a/modules/drogon/request.cpp b/modules/drogon/request.cpp index 9510ac0..d966bd7 100644 --- a/modules/drogon/request.cpp +++ b/modules/drogon/request.cpp @@ -80,6 +80,11 @@ std::string DRequest::parser_get_path() { return request->getPath(); } +std::string DRequest::get_host() const { + //todo + return "/"; +} + void DRequest::update() { if (file_next) { file_next = false; diff --git a/modules/drogon/request.h b/modules/drogon/request.h index 88b9fc1..fc5b0ef 100644 --- a/modules/drogon/request.h +++ b/modules/drogon/request.h @@ -33,6 +33,7 @@ public: void send_file(const std::string &p_file_path); void reset(); std::string parser_get_path(); + std::string get_host() const; void update();