Remove unique_ptr wrapper
This commit is contained in:
parent
1c44538fc9
commit
7c7b508620
@ -26,7 +26,7 @@ struct HttpResponse {
|
||||
|
||||
class HttpRequestResponseTrigger : public Trigger<int, HttpResponse> {
|
||||
public:
|
||||
void process(std::unique_ptr<HttpResponse> &response) { this->trigger(response->status_code, *response); }
|
||||
void process(HttpResponse response) { this->trigger(response->status_code, response); }
|
||||
};
|
||||
|
||||
class HttpRequestComponent : public Component {
|
||||
@ -47,7 +47,7 @@ class HttpRequestComponent : public Component {
|
||||
bool get_capture_response() { return this->capture_response_; }
|
||||
|
||||
virtual void set_url(std::string url) = 0;
|
||||
virtual std::unique_ptr<HttpResponse> send() = 0;
|
||||
virtual HttpResponse send() = 0;
|
||||
|
||||
protected:
|
||||
std::string url_;
|
||||
@ -112,7 +112,7 @@ template<typename... Ts> class HttpRequestSendAction : public Action<Ts...> {
|
||||
}
|
||||
this->parent_->set_headers(headers);
|
||||
}
|
||||
std::unique_ptr<HttpResponse> response = this->parent_->send();
|
||||
HttpResponse response = this->parent_->send();
|
||||
|
||||
for (auto *trigger : this->response_triggers_)
|
||||
trigger->process(response);
|
||||
|
@ -23,7 +23,7 @@ void HttpRequestArduino::set_url(std::string url) {
|
||||
this->client_.setReuse(true);
|
||||
}
|
||||
|
||||
std::unique_ptr<HttpResponse> HttpRequestArduino::send() {
|
||||
HttpResponse HttpRequestArduino::send() {
|
||||
if (!network::is_connected()) {
|
||||
this->client_.end();
|
||||
this->status_set_warning();
|
||||
@ -68,10 +68,10 @@ std::unique_ptr<HttpResponse> HttpRequestArduino::send() {
|
||||
|
||||
int http_code = this->client_.sendRequest(this->method_.c_str(), this->body_.c_str());
|
||||
|
||||
std::unique_ptr<HttpResponse> response = make_unique<HttpResponse>();
|
||||
HttpResponse response = {};
|
||||
|
||||
response->status_code = http_code;
|
||||
response->content_length = this->client_.getSize();
|
||||
response.status_code = http_code;
|
||||
response.content_length = this->client_.getSize();
|
||||
|
||||
if (http_code < 0) {
|
||||
ESP_LOGW(TAG, "HTTP Request failed; URL: %s; Error: %s", this->url_.c_str(),
|
||||
@ -86,7 +86,7 @@ std::unique_ptr<HttpResponse> HttpRequestArduino::send() {
|
||||
auto &
|
||||
#endif
|
||||
str = this->client_.getString();
|
||||
response->data = std::vector<char>(str.c_str(), str.c_str() + str.length());
|
||||
response.data = std::vector<char>(str.c_str(), str.c_str() + str.length());
|
||||
}
|
||||
|
||||
if (http_code < 200 || http_code >= 300) {
|
||||
|
@ -20,7 +20,7 @@ namespace http_request {
|
||||
class HttpRequestArduino : public HttpRequestComponent {
|
||||
public:
|
||||
void set_url(std::string url) override;
|
||||
std::unique_ptr<HttpResponse> send() override;
|
||||
HttpResponse send() override;
|
||||
|
||||
protected:
|
||||
std::string last_url_;
|
||||
|
@ -56,11 +56,11 @@ esp_err_t http_event_handler(esp_http_client_event_t *evt) {
|
||||
|
||||
void HttpRequestIDF::set_url(std::string url) { this->url_ = std::move(url); }
|
||||
|
||||
std::unique_ptr<HttpResponse> HttpRequestIDF::send() {
|
||||
HttpResponse HttpRequestIDF::send() {
|
||||
if (!network::is_connected()) {
|
||||
this->status_set_warning();
|
||||
ESP_LOGE(TAG, "HTTP Request failed; Not connected to network");
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
esp_http_client_method_t method;
|
||||
@ -77,7 +77,7 @@ std::unique_ptr<HttpResponse> HttpRequestIDF::send() {
|
||||
} else {
|
||||
this->status_set_warning();
|
||||
ESP_LOGE(TAG, "HTTP Request failed; Unsupported method");
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
HttpResponse response = {}; // used as user_data, by http_event_handler, in esp_http_client_perform
|
||||
@ -111,7 +111,7 @@ std::unique_ptr<HttpResponse> HttpRequestIDF::send() {
|
||||
this->status_set_warning();
|
||||
ESP_LOGE(TAG, "HTTP Request failed: %s", esp_err_to_name(err));
|
||||
esp_http_client_cleanup(client);
|
||||
return nullptr;
|
||||
return {};
|
||||
}
|
||||
|
||||
const auto status_code = esp_http_client_get_status_code(client);
|
||||
@ -121,7 +121,7 @@ std::unique_ptr<HttpResponse> HttpRequestIDF::send() {
|
||||
if (status_code < 200 || status_code >= 300) {
|
||||
ESP_LOGE(TAG, "HTTP Request failed; URL: %s; Code: %d", this->url_.c_str(), status_code);
|
||||
this->status_set_warning();
|
||||
return make_unique<HttpResponse>(std::move(response));
|
||||
return response;
|
||||
}
|
||||
|
||||
this->status_clear_warning();
|
||||
@ -129,7 +129,7 @@ std::unique_ptr<HttpResponse> HttpRequestIDF::send() {
|
||||
|
||||
esp_http_client_cleanup(client);
|
||||
|
||||
return make_unique<HttpResponse>(std::move(response));
|
||||
return response;
|
||||
}
|
||||
|
||||
} // namespace http_request
|
||||
|
@ -17,7 +17,7 @@ static const size_t RESPONSE_BUFFER_SIZE = 2048;
|
||||
class HttpRequestIDF : public HttpRequestComponent {
|
||||
public:
|
||||
void set_url(std::string url) override;
|
||||
std::unique_ptr<HttpResponse> send() override;
|
||||
HttpResponse send() override;
|
||||
|
||||
protected:
|
||||
char last_response_buffer_[RESPONSE_BUFFER_SIZE];
|
||||
|
Loading…
x
Reference in New Issue
Block a user