diff --git a/EtsiServerGen/patches/fixRelocInfoJSONIssue.patch b/EtsiServerGen/patches/fixRelocInfoJSONIssue.patch index 7edcebebdcdaff186da496d98dcd36fa549c20fa..f23b965fda8833d2f4e2e853a3a02de05976b762 100644 --- a/EtsiServerGen/patches/fixRelocInfoJSONIssue.patch +++ b/EtsiServerGen/patches/fixRelocInfoJSONIssue.patch @@ -1,21 +1,67 @@ ---- RelocalizationInformationApi.cpp 2024-04-15 17:47:44.479386460 +0200 -+++ RelocalizationInformationApi_patched.cpp 2024-04-15 17:49:35.119867623 +0200 -@@ -161,12 +161,12 @@ - std::vector<RelocalizationInformationParam> uuids; - std::vector<std::string> uuids_temp; - boost::split(uuids_temp, uuids_raw, boost::is_any_of(",")); +--- ../../../world-storage-cpp-server/EtsiServerGen/api/RelocalizationInformationApi.cpp 2024-04-25 11:26:25.741693040 +0200 ++++ ../../../../world-storage-cpp-serverRestBed/EtsiServerGen/api/RelocalizationInformationApi.cpp 2024-04-24 17:42:01.508637971 +0200 +@@ -20,7 +20,7 @@ + #include <boost/property_tree/json_parser.hpp> + #include <boost/lexical_cast.hpp> + #include <boost/algorithm/string.hpp> +- ++#include <iostream> + #include "RelocalizationInformationApi.h" + + namespace org { +@@ -155,21 +155,36 @@ + + void RelocalizationInformationResource::handler_GET_internal(const std::shared_ptr<restbed::Session> session) + { +- const auto request = session->get_request(); +- // Getting the query params +- std::string uuids_raw = request->get_query_parameter("uuids"); +- std::vector<RelocalizationInformationParam> uuids; +- std::vector<std::string> uuids_temp; +- boost::split(uuids_temp, uuids_raw, boost::is_any_of(",")); - std::transform(uuids_temp.begin(), uuids_temp.end(), std::back_inserter(uuids), [](const auto& i){ RelocalizationInformationParam ret; ret.fromString(i); return ret;}); -+ std::transform(uuids_temp.begin(), uuids_temp.end(), std::back_inserter(uuids), [](const auto& i){ RelocalizationInformationParam ret; ret.fromJsonString(i); return ret;}); - std::string capabilities_raw = request->get_query_parameter("capabilities"); - std::vector<Capability> capabilities; - std::vector<std::string> capabilities_temp; - boost::split(capabilities_temp, capabilities_raw, boost::is_any_of(",")); +- std::string capabilities_raw = request->get_query_parameter("capabilities"); +- std::vector<Capability> capabilities; +- std::vector<std::string> capabilities_temp; +- boost::split(capabilities_temp, capabilities_raw, boost::is_any_of(",")); - std::transform(capabilities_temp.begin(), capabilities_temp.end(), std::back_inserter(capabilities), [](const auto& i){ Capability ret; ret.fromString(i); return ret;}); -+ std::transform(capabilities_temp.begin(), capabilities_temp.end(), std::back_inserter(capabilities), [](const auto& i){ Capability ret; ret.fromJsonString(i); return ret;}); - // Getting the headers - std::string token = request->get_header("token", ""); - -@@ -209,7 +209,7 @@ +- // Getting the headers +- std::string token = request->get_header("token", ""); +- ++const auto request = session->get_request(); ++// Getting the query params ++std::string uuids_raw = request->get_query_parameter("uuids"); ++std::vector<RelocalizationInformationParam> uuids; ++std::vector<std::string> uuids_temp; ++boost::split(uuids_temp, uuids_raw, boost::is_any_of(";")); ++for (auto& uuid_str : uuids_temp) { ++ std::replace(uuid_str.begin(), uuid_str.end(), '(', '{'); ++ std::replace(uuid_str.begin(), uuid_str.end(), ')', '}'); ++ RelocalizationInformationParam ret; ++ ret.fromJsonString(uuid_str); ++ uuids.push_back(ret); ++} ++ ++std::string capabilities_raw = request->get_query_parameter("capabilities"); ++std::vector<Capability> capabilities; ++std::vector<std::string> capabilities_temp; ++boost::split(capabilities_temp, capabilities_raw, boost::is_any_of(";")); ++for (auto& cap_str : capabilities_temp) { ++ std::replace(cap_str.begin(), cap_str.end(), '(', '{'); ++ std::replace(cap_str.begin(), cap_str.end(), ')', '}'); ++ Capability ret; ++ ret.fromJsonString(cap_str); ++ capabilities.push_back(ret); ++} ++ ++// Getting the headers ++std::string token = request->get_header("token", ""); ++ ++ + int status_code = 500; + GetRelocalizationInformation_200_response resultObject = GetRelocalizationInformation_200_response{}; + std::string result = ""; +@@ -209,7 +224,7 @@ responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); result = "Invalid UUID supplied."; @@ -24,7 +70,7 @@ returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders); return; } -@@ -217,7 +217,7 @@ +@@ -217,7 +232,7 @@ responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); result = "Not found, could not find UUID in database.";