Improve searching for route handle in rest api

This commit is contained in:
Lorow
2025-04-01 23:31:00 +02:00
parent 345e10175a
commit 055d27b306
+4 -5
View File
@@ -42,16 +42,16 @@ void RestAPI::handle_request(struct mg_connection *connection, int event, void *
{ {
struct mg_http_message *message = (struct mg_http_message *)event_data; struct mg_http_message *message = (struct mg_http_message *)event_data;
std::string uri = std::string(message->uri.buf, message->uri.len); std::string uri = std::string(message->uri.buf, message->uri.len);
auto handler = this->routes[uri];
if (auto method_it = this->routes.find(uri); method_it != this->routes.end()) if (handler)
{ {
RequestContext *context = new RequestContext{ RequestContext *context = new RequestContext{
.connection = connection, .connection = connection,
.method = std::string(message->method.buf, message->method.len), .method = std::string(message->method.buf, message->method.len),
.body = std::string(message->body.buf, message->body.len), .body = std::string(message->body.buf, message->body.len),
}; };
auto method = method_it->second; (*this.*handler)(context);
(*this.*method)(context);
} }
else else
{ {
@@ -71,8 +71,7 @@ void RestAPI::poll()
mg_mgr_poll(&mgr, 100); mg_mgr_poll(&mgr, 100);
} }
// commands // COMMANDS
// updates // updates
void RestAPI::handle_update_wifi(RequestContext *context) void RestAPI::handle_update_wifi(RequestContext *context)
{ {