os << header.first << " = " << header.second << ",";
}
+ os << " ], parameters: [";
+
+ for (const auto ¶meter : req.parameters) {
+ os << parameter.first << " = " << parameter.second << ",";
+ }
+
os << " ] }";
return os;
}
req.path = std::string((*query_view_iter).begin(), (*query_view_iter).end());
query_view_iter++;
- req.query = std::string((*query_view_iter).begin(), (*query_view_iter).end());
+
+ auto query_param_view =
+ std::string_view((*query_view_iter).begin(), (*query_view_iter).end()) |
+ std::views::split(';');
+
+ auto query_param_view_iter = query_param_view.begin();
+ while (query_param_view_iter != query_param_view.end()) {
+ auto param_view =
+ std::string_view((*query_param_view_iter).begin(), (*query_param_view_iter).end()) |
+ std::views::split('=');
+ auto param_view_iter = param_view.begin();
+
+ auto param_name = std::string((*param_view_iter).begin(), (*param_view_iter).end());
+ param_view_iter++;
+ req.parameters[std::move(param_name)] = std::string((*param_view_iter).begin(), (*param_view_iter).end());
+
+ ++query_param_view_iter;
+ }
}
std::string_view version(*word_iter);
http_version version = {.major = 1, .minor = 1};
std::unordered_map<std::string, std::string> optheaders = {};
+ std::unordered_map<std::string, std::string> parameters = {};
};
} // namespace http