Loading EtsiServerGen/conanfile.txt +1 −1 Original line number Diff line number Diff line [requires] boost/1.78.0 boost/1.84.0 restbed/4.8 [generators] Loading EtsiServerGen/patches/applyPatches.sh +6 −9 Original line number Diff line number Diff line #!/bin/bash patch -u ../api/DefaultApi.h -i fixHeaderModelIssue.patch patch -u ../api/DefaultApi.cpp -i fixCppModelIssue.patch patch -u ../api/TrackablesApi.cpp -i fixCppTrackable.patch patch -u ../api/RelocalizationInformationApi.cpp -i fixCppRelocalizationInformation.patch patch -u ../api/TrackablesApi.cpp -i fixCppTrackables.patch patch -u ../api/WorldAnchorsApi.cpp -i fixCppWorldAnchors.patch patch -u ../api/WorldLinksApi.cpp -i fixCppWorldLinks.patch patch -u ../api/RelocalizationInformationApi.cpp -i fixCppRelocalizationInformation.patch patch -u ../model/WorldLink.cpp -i fixCppWorldLinksModel.patch patch -u ../model/WorldAnchor.cpp -i fixCppWorldAnchorModel.patch patch -u ../model/Trackable.cpp -i fixCppTrackableModel.patch patch -u ../model/helpers.h -i fixHelperHeader.patch patch -u ../model/RelocalizationInformation.cpp -i fixCppRelocalizationInformationModel.patch patch -u ../model/RelocalizationInformationParam.cpp -i fixCppRelocalizationInformationParamModel.patch patch -u ../model/GetRelocalizationInformation_200_response.cpp -i fixCppGetRelocResponse.patch patch -u ../model/Capability.cpp -i fixCppCapabilityModel.patch patch -u ../model/Trackable.cpp -i fixCppTrackableModel.patch patch -u ../model/UuidAndMode.cpp -i fixCppUuidAndModeModel.patch patch -u ../model/WorldAnchor.cpp -i fixCppWorldAnchorModel.patch patch -u ../model/WorldLink.cpp -i fixCppWorldLinkModel.patch EtsiServerGen/patches/fixCppCapabilityModel.patch +12 −10 Original line number Diff line number Diff line diff --git a/EtsiServerGen/model/Capability.cpp b/../../world-storage-cpp-server/EtsiServerGen/model/Capability.cpp index 8df709d..442bc9d 100644 --- a/EtsiServerGen/model/Capability.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/model/Capability.cpp @@ -63,6 +63,7 @@ ptree Capability::toPropertyTree() const --- Capability.cpp 2024-09-19 23:18:16.290090280 +0200 +++ Capability-corrected.cpp 2024-09-20 13:40:09.082949533 +0200 @@ -63,7 +63,8 @@ { ptree pt; ptree tmp_node; - pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); + pt.put("trackableType", m_TrackableType.getEnumValue()); pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); + pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); pt.put("framerate", m_Framerate); pt.put("latency", m_Latency); @@ -73,6 +74,7 @@ ptree Capability::toPropertyTree() const pt.put("accuracy", m_Accuracy); @@ -73,7 +74,8 @@ void Capability::fromPropertyTree(ptree const &pt) { ptree tmp_node; - if (pt.get_child_optional("encodingInformation")) { + m_TrackableType.setEnumValue(pt.get("trackableType","")); if (pt.get_child_optional("encodingInformation")) { + if (pt.get_child_optional("encodingInformation")) { m_EncodingInformation = fromPt<EncodingInformationStructure>(pt.get_child("encodingInformation")); } m_Framerate = pt.get("framerate", 0.0); EtsiServerGen/patches/fixCppGetRelocResponse.patchdeleted 100644 → 0 +0 −14 Original line number Diff line number Diff line diff --git a/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp b/../../world-storage-cpp-server/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp index d6f90df..ce6079e 100644 --- a/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp @@ -47,6 +47,9 @@ std::string GetRelocalizationInformation_200_response::toJsonString(bool prettyJ // workaround inspired by: https://stackoverflow.com/a/56395440 std::regex reg("\\\"([0-9]+\\.{0,1}[0-9]*)\\\""); std::string result = std::regex_replace(ss.str(), reg, "$1"); + + result.erase(std::remove(result.begin(), result.end(), '|'), result.end()); + return result; } EtsiServerGen/patches/fixCppRelocalizationInformation.patch +7 −62 Original line number Diff line number Diff line diff --git a/EtsiServerGen/api/RelocalizationInformationApi.cpp b/../../world-storage-cpp-server/EtsiServerGen/api/RelocalizationInformationApi.cpp index f332ad2..6ba51b8 100644 --- a/EtsiServerGen/api/RelocalizationInformationApi.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/api/RelocalizationInformationApi.cpp @@ -22,7 +22,7 @@ #include <boost/algorithm/string.hpp> #include "RelocalizationInformationApi.h" - +#include <iostream> namespace org { namespace openapitools { namespace server { @@ -155,21 +155,28 @@ void RelocalizationInformationResource::defaultSessionClose(const std::shared_pt void RelocalizationInformationResource::handler_GET_internal(const std::shared_ptr<restbed::Session> session) --- RelocalizationInformationApi.cpp 2024-09-19 22:57:54.664539447 +0200 +++ RelocalizationInformationApi_corrected.cpp 2024-09-19 22:57:22.213975949 +0200 @@ -157,16 +157,12 @@ { + const auto request = session->get_request(); // Getting the query params - std::string uuids_raw = request->get_query_parameter("uuids"); + std::multimap<std::string, std::string> uuids_raw = request->get_query_parameters("uuids"); std::vector<RelocalizationInformationParam> uuids; std::vector<UuidAndMode> 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){ UuidAndMode ret; ret.fromString(i); return ret;}); - std::string capabilities_raw = request->get_query_parameter("capabilities"); + for (auto it = uuids_raw.begin(); it != uuids_raw.end(); it++) + { + RelocalizationInformationParam relocInformationParam; + relocInformationParam.fromJsonString(it->second); + uuids.push_back(relocInformationParam); + } + std::transform(uuids_raw.begin(), uuids_raw.end(), std::back_inserter(uuids), [](const auto& i){ UuidAndMode ret; ret.fromJsonString(i.second); return ret;}); + std::multimap<std::string, std::string> capabilities_raw = request->get_query_parameters("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;}); + for (auto it = capabilities_raw.begin(); it != capabilities_raw.end(); it++) + { + Capability capability; + capability.fromJsonString(it->second); + capabilities.push_back(capability); + } + std::transform(capabilities_raw.begin(), capabilities_raw.end(), std::back_inserter(capabilities), [](const auto& i){ Capability ret; ret.fromJsonString(i.second); return 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 = ""; @@ -202,22 +209,22 @@ void RelocalizationInformationResource::handler_GET_internal(const std::shared_p } result = resultObject.toJsonString(); - returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders); + returnResponse(session, 200, result.empty() ? "empty" : result, responseHeaders); return; } if (status_code == 400) { responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); result = "Invalid UUID supplied."; - result = resultObject; + result = resultObject.toJsonString(); returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders); return; } if (status_code == 404) { responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); - result = "Not found, could not find UUID in database."; + result = "Not found, could not find UUID or Supported content in database."; - result = resultObject; + returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders); return; } Loading
EtsiServerGen/conanfile.txt +1 −1 Original line number Diff line number Diff line [requires] boost/1.78.0 boost/1.84.0 restbed/4.8 [generators] Loading
EtsiServerGen/patches/applyPatches.sh +6 −9 Original line number Diff line number Diff line #!/bin/bash patch -u ../api/DefaultApi.h -i fixHeaderModelIssue.patch patch -u ../api/DefaultApi.cpp -i fixCppModelIssue.patch patch -u ../api/TrackablesApi.cpp -i fixCppTrackable.patch patch -u ../api/RelocalizationInformationApi.cpp -i fixCppRelocalizationInformation.patch patch -u ../api/TrackablesApi.cpp -i fixCppTrackables.patch patch -u ../api/WorldAnchorsApi.cpp -i fixCppWorldAnchors.patch patch -u ../api/WorldLinksApi.cpp -i fixCppWorldLinks.patch patch -u ../api/RelocalizationInformationApi.cpp -i fixCppRelocalizationInformation.patch patch -u ../model/WorldLink.cpp -i fixCppWorldLinksModel.patch patch -u ../model/WorldAnchor.cpp -i fixCppWorldAnchorModel.patch patch -u ../model/Trackable.cpp -i fixCppTrackableModel.patch patch -u ../model/helpers.h -i fixHelperHeader.patch patch -u ../model/RelocalizationInformation.cpp -i fixCppRelocalizationInformationModel.patch patch -u ../model/RelocalizationInformationParam.cpp -i fixCppRelocalizationInformationParamModel.patch patch -u ../model/GetRelocalizationInformation_200_response.cpp -i fixCppGetRelocResponse.patch patch -u ../model/Capability.cpp -i fixCppCapabilityModel.patch patch -u ../model/Trackable.cpp -i fixCppTrackableModel.patch patch -u ../model/UuidAndMode.cpp -i fixCppUuidAndModeModel.patch patch -u ../model/WorldAnchor.cpp -i fixCppWorldAnchorModel.patch patch -u ../model/WorldLink.cpp -i fixCppWorldLinkModel.patch
EtsiServerGen/patches/fixCppCapabilityModel.patch +12 −10 Original line number Diff line number Diff line diff --git a/EtsiServerGen/model/Capability.cpp b/../../world-storage-cpp-server/EtsiServerGen/model/Capability.cpp index 8df709d..442bc9d 100644 --- a/EtsiServerGen/model/Capability.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/model/Capability.cpp @@ -63,6 +63,7 @@ ptree Capability::toPropertyTree() const --- Capability.cpp 2024-09-19 23:18:16.290090280 +0200 +++ Capability-corrected.cpp 2024-09-20 13:40:09.082949533 +0200 @@ -63,7 +63,8 @@ { ptree pt; ptree tmp_node; - pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); + pt.put("trackableType", m_TrackableType.getEnumValue()); pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); + pt.add_child("encodingInformation", m_EncodingInformation.toPropertyTree()); pt.put("framerate", m_Framerate); pt.put("latency", m_Latency); @@ -73,6 +74,7 @@ ptree Capability::toPropertyTree() const pt.put("accuracy", m_Accuracy); @@ -73,7 +74,8 @@ void Capability::fromPropertyTree(ptree const &pt) { ptree tmp_node; - if (pt.get_child_optional("encodingInformation")) { + m_TrackableType.setEnumValue(pt.get("trackableType","")); if (pt.get_child_optional("encodingInformation")) { + if (pt.get_child_optional("encodingInformation")) { m_EncodingInformation = fromPt<EncodingInformationStructure>(pt.get_child("encodingInformation")); } m_Framerate = pt.get("framerate", 0.0);
EtsiServerGen/patches/fixCppGetRelocResponse.patchdeleted 100644 → 0 +0 −14 Original line number Diff line number Diff line diff --git a/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp b/../../world-storage-cpp-server/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp index d6f90df..ce6079e 100644 --- a/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/model/GetRelocalizationInformation_200_response.cpp @@ -47,6 +47,9 @@ std::string GetRelocalizationInformation_200_response::toJsonString(bool prettyJ // workaround inspired by: https://stackoverflow.com/a/56395440 std::regex reg("\\\"([0-9]+\\.{0,1}[0-9]*)\\\""); std::string result = std::regex_replace(ss.str(), reg, "$1"); + + result.erase(std::remove(result.begin(), result.end(), '|'), result.end()); + return result; }
EtsiServerGen/patches/fixCppRelocalizationInformation.patch +7 −62 Original line number Diff line number Diff line diff --git a/EtsiServerGen/api/RelocalizationInformationApi.cpp b/../../world-storage-cpp-server/EtsiServerGen/api/RelocalizationInformationApi.cpp index f332ad2..6ba51b8 100644 --- a/EtsiServerGen/api/RelocalizationInformationApi.cpp +++ b/../../world-storage-cpp-server/EtsiServerGen/api/RelocalizationInformationApi.cpp @@ -22,7 +22,7 @@ #include <boost/algorithm/string.hpp> #include "RelocalizationInformationApi.h" - +#include <iostream> namespace org { namespace openapitools { namespace server { @@ -155,21 +155,28 @@ void RelocalizationInformationResource::defaultSessionClose(const std::shared_pt void RelocalizationInformationResource::handler_GET_internal(const std::shared_ptr<restbed::Session> session) --- RelocalizationInformationApi.cpp 2024-09-19 22:57:54.664539447 +0200 +++ RelocalizationInformationApi_corrected.cpp 2024-09-19 22:57:22.213975949 +0200 @@ -157,16 +157,12 @@ { + const auto request = session->get_request(); // Getting the query params - std::string uuids_raw = request->get_query_parameter("uuids"); + std::multimap<std::string, std::string> uuids_raw = request->get_query_parameters("uuids"); std::vector<RelocalizationInformationParam> uuids; std::vector<UuidAndMode> 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){ UuidAndMode ret; ret.fromString(i); return ret;}); - std::string capabilities_raw = request->get_query_parameter("capabilities"); + for (auto it = uuids_raw.begin(); it != uuids_raw.end(); it++) + { + RelocalizationInformationParam relocInformationParam; + relocInformationParam.fromJsonString(it->second); + uuids.push_back(relocInformationParam); + } + std::transform(uuids_raw.begin(), uuids_raw.end(), std::back_inserter(uuids), [](const auto& i){ UuidAndMode ret; ret.fromJsonString(i.second); return ret;}); + std::multimap<std::string, std::string> capabilities_raw = request->get_query_parameters("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;}); + for (auto it = capabilities_raw.begin(); it != capabilities_raw.end(); it++) + { + Capability capability; + capability.fromJsonString(it->second); + capabilities.push_back(capability); + } + std::transform(capabilities_raw.begin(), capabilities_raw.end(), std::back_inserter(capabilities), [](const auto& i){ Capability ret; ret.fromJsonString(i.second); return 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 = ""; @@ -202,22 +209,22 @@ void RelocalizationInformationResource::handler_GET_internal(const std::shared_p } result = resultObject.toJsonString(); - returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders); + returnResponse(session, 200, result.empty() ? "empty" : result, responseHeaders); return; } if (status_code == 400) { responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); result = "Invalid UUID supplied."; - result = resultObject; + result = resultObject.toJsonString(); returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders); return; } if (status_code == 404) { responseHeaders.insert(std::make_pair("Content-Type", "text/plain")); - result = "Not found, could not find UUID in database."; + result = "Not found, could not find UUID or Supported content in database."; - result = resultObject; + returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders); return; }