Skip to content
Snippets Groups Projects
Commit 24856482 authored by Hugo Kreber's avatar Hugo Kreber
Browse files

update patches

parent 5f24579c
No related branches found
No related tags found
2 merge requests!6Correction of many fixes,!5force the use of version 6.6.0 of openapi-generator-cli due to a bug since...
......@@ -4,4 +4,7 @@ patch -u ../api/DefaultApi.cpp -i fixCppModelIssue.patch
patch -u ../api/RelocalizationInformationApi.cpp -i fixRelocInfoJSONIssue.patch
patch -u ../api/TrackablesApi.cpp -i fixCppTrackable.patch
patch -u ../api/WorldAnchorsApi.cpp -i fixCppWorldAnchor.patch
patch -u ../api/WorldLinksApi.cpp -i fixCppWorldLink.patch
\ No newline at end of file
patch -u ../api/WorldLinksApi.cpp -i fixCppWorldLink.patch
patch -u ../model/WorldLink.cpp -i fixCppWorldLinkModel.patch
patch -u ../model/WorldAnchor.cpp -i fixCppWorldAnchorModel.patch
patch -u ../model/Trackable.cpp -i fixCppTrackableModel.patch
\ No newline at end of file
--- TrackablesApi.cpp 2024-04-15 17:52:21.000357100 +0200
+++ TrackablesApi_patched.cpp 2024-04-15 18:08:32.955228320 +0200
@@ -201,7 +201,7 @@
}
result = resultObject;
--- ../../../world-storage-cpp-server/EtsiServerGen/api/TrackablesApi.cpp 2024-04-15 17:47:05.542444638 +0200
+++ ../api/TrackablesApi.cpp 2024-04-22 18:14:43.144871367 +0200
@@ -20,9 +20,12 @@
#include <boost/property_tree/json_parser.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string.hpp>
-
+#include <iostream>
+#include <stdlib.h>
#include "TrackablesApi.h"
+
+
namespace org {
namespace openapitools {
namespace server {
@@ -80,6 +83,13 @@
boost::property_tree::json_parser::read_json(sstream, pt);
auto model = MODEL_T(pt);
+
+ if constexpr(std::is_same_v<MODEL_T, Trackable>) {
+ auto unitStr = pt.get<std::string>("unit", "");
+ UnitSystem unit;
+ unit.fromString(unitStr);// Convertir unitStr en UnitSystem
+ model.setUnit(unit);
+ }
return model;
}
@@ -159,86 +169,102 @@
session->close(status, result, { {"Connection", "close"} });
}
+
+void extractBodyContentAsync(
+ const std::shared_ptr<restbed::Session>& session,
+ int content_length,
+ std::function<void(const std::string&)> callback)
+{
+ session->fetch(content_length,
+ [callback](const std::shared_ptr<restbed::Session> session,
+ const restbed::Bytes &body) {
+ std::string bodyContent = restbed::String::format(
+ "%.*s\n", (int)body.size(), body.data());
+ callback(bodyContent);
+ });
+}
void TrackablesResource::handler_POST_internal(const std::shared_ptr<restbed::Session> session)
{
const auto request = session->get_request();
- // body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
- auto trackable = extractJsonModelBodyParam<Trackable>(bodyContent);
- // Getting the headers
- std::string token = request->get_header("token", "");
-
- int status_code = 500;
- std::string resultObject = "";
- std::string result = "";
-
- try {
- std::tie(status_code, resultObject) =
- handler_POST(trackable, token);
- }
- catch(const TrackablesApiException& e) {
- std::tie(status_code, result) = handleTrackablesApiException(e);
- }
- catch(const std::exception& e) {
- std::tie(status_code, result) = handleStdException(e);
- }
- catch(...) {
- std::tie(status_code, result) = handleUnspecifiedException();
- }
-
- std::multimap< std::string, std::string > responseHeaders {};
- static const std::vector<std::string> contentTypes{
- "text/plain","application/json",
- };
- static const std::string acceptTypes{
- "application/json, "
- };
-
- if (status_code == 200) {
- responseHeaders.insert(std::make_pair("Content-Type", selectPreferredContentType(contentTypes)));
- if (!acceptTypes.empty()) {
- responseHeaders.insert(std::make_pair("Accept", acceptTypes));
- }
-
- result = resultObject;
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 200, result, responseHeaders);
return;
}
if (status_code == 201) {
@@ -211,7 +211,7 @@
}
result = resultObject;
- return;
- }
- if (status_code == 201) {
- responseHeaders.insert(std::make_pair("Content-Type", selectPreferredContentType(contentTypes)));
- if (!acceptTypes.empty()) {
- responseHeaders.insert(std::make_pair("Accept", acceptTypes));
- }
-
- result = resultObject;
- returnResponse(session, 201, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 201, result, responseHeaders);
return;
}
if (status_code == 400) {
@@ -219,7 +219,7 @@
result = "Bad request.";
result = resultObject;
- return;
- }
- if (status_code == 400) {
- responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
- result = "Bad request.";
-
- result = resultObject;
- returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 400, result, responseHeaders);
return;
}
if (status_code == 409) {
@@ -227,15 +227,14 @@
result = "Invalid UUID, id must be a Nil value.";
result = resultObject;
- return;
- }
- if (status_code == 409) {
- responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
- result = "Invalid UUID, id must be a Nil value.";
-
- result = resultObject;
- returnResponse(session, 409, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 409, result, responseHeaders);
return;
}
if (status_code == 0) {
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Unexpected error.";
- return;
- }
- if (status_code == 0) {
- responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
- result = "Unexpected error.";
-
- result = resultObject.toJsonString();
- returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 0, result, responseHeaders);
return;
}
defaultSessionClose(session, status_code, result);
@@ -277,8 +276,12 @@
- return;
- }
- defaultSessionClose(session, status_code, result);
+ int content_length = request->get_header("Content-Length", 0);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
+
+
+ std::string token = request->get_header("token", "");
+
+ int status_code = 500;
+ std::string resultObject = "";
+ std::string result = "";
+
+ auto trackable = extractJsonModelBodyParam<Trackable>(bodyContent);
+
+ try {
+ std::tie(status_code, resultObject) =
+ handler_POST(trackable, token);
+ }
+ catch (const TrackablesApiException& e) {
+ std::tie(status_code, result) = handleTrackablesApiException(e);
+ }
+ catch (const std::exception& e) {
+ std::tie(status_code, result) = handleStdException(e);
+ }
+ catch (...) {
+ std::tie(status_code, result) = handleUnspecifiedException();
+ }
+
+ std::multimap< std::string, std::string > responseHeaders {};
+ static const std::vector<std::string> contentTypes{
+ "text/plain","application/json",
+ };
+ static const std::string acceptTypes{
+ "application/json, "
+ };
+
+ if (status_code == 200) {
+ responseHeaders.insert(std::make_pair("Content-Type", selectPreferredContentType(contentTypes)));
+ if (!acceptTypes.empty()) {
+ responseHeaders.insert(std::make_pair("Accept", acceptTypes));
+ }
+
+ auto result = resultObject;
+ returnResponse(session, 200, result, responseHeaders);
+ return;
+ }
+ if (status_code == 201) {
+ responseHeaders.insert(std::make_pair("Content-Type", selectPreferredContentType(contentTypes)));
+ if (!acceptTypes.empty()) {
+ responseHeaders.insert(std::make_pair("Accept", acceptTypes));
+ }
+
+ auto result = resultObject;
+ returnResponse(session, 201, result, responseHeaders);
+ return;
+ }
+ if (status_code == 400) {
+ responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
+ result = "Bad request.";
+
+ auto result = resultObject;
+ returnResponse(session, 400, result, responseHeaders);
+ return;
+ }
+ if (status_code == 409) {
+ responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
+ result = "Invalid UUID, id must be a Nil value.";
+
+ auto result = resultObject;
+ returnResponse(session, 409, result, responseHeaders);
+ return;
+ }
+ if (status_code == 0) {
+ responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
+ result = "Unexpected error.";
+
+ returnResponse(session, 0, result, responseHeaders);
+ return;
+ }
+ defaultSessionClose(session, status_code, result);
+ });
}
// x-extension
@@ -277,8 +303,11 @@
if (!acceptTypes.empty()) {
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
-
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+ std::string response;
+ for (const Trackable& item :resultObject) {
+ response += item.toJsonString() + ",\n";
+ std::string rep;
+ for (const Trackable& item : resultObject) {
+ rep += item.toJsonString() + ",\n";
+ }
+
+ returnResponse(session, 200, response, responseHeaders);
+ returnResponse(session, 200, rep, responseHeaders);
return;
}
if (status_code == 201) {
@@ -286,17 +289,18 @@
@@ -286,17 +315,20 @@
if (!acceptTypes.empty()) {
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
-
- result = resultObject;
- returnResponse(session, 201, result.empty() ? "{}" : result, responseHeaders);
+ std::string response;
+ for (const Trackable& item :resultObject) {
+ response += item.toJsonString() + ",\n";
+ std::string rep;
+ for (const Trackable& item : resultObject) {
+ rep += item.toJsonString() + ",\n";
+ }
+ returnResponse(session, 201, response, responseHeaders);
+
+ returnResponse(session, 201, rep, responseHeaders);
return;
}
if (status_code == 0) {
......@@ -80,33 +243,51 @@
- result = resultObject.toJsonString();
- returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
+
+ returnResponse(session, 0, result, responseHeaders);
return;
}
defaultSessionClose(session, status_code, result);
@@ -343,7 +347,7 @@
@@ -304,8 +336,11 @@
// x-extension
void TrackablesResource::handler_PUT_internal(const std::shared_ptr<restbed::Session> session) {
const auto request = session->get_request();
+ int content_length = request->get_header("Content-Length", 0);
+
// body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
+
auto trackable = extractJsonModelBodyParam<Trackable>(bodyContent);
// Getting the headers
std::string token = request->get_header("token", "");
@@ -342,35 +377,36 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
result = resultObject;
- result = resultObject;
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 200, result, responseHeaders);
return;
}
if (status_code == 400) {
@@ -351,7 +355,7 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Bad request.";
result = resultObject;
- result = resultObject;
- returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 400, result, responseHeaders);
return;
}
if (status_code == 404) {
@@ -359,15 +363,15 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Not found, could not find UUID in database.";
result = resultObject;
- result = resultObject;
- returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 404, result, responseHeaders);
return;
}
......@@ -116,44 +297,79 @@
- result = resultObject.toJsonString();
- returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
+ result = resultObject;
+
+ returnResponse(session, 0, result, responseHeaders);
return;
}
defaultSessionClose(session, status_code, result);
@@ -494,7 +498,7 @@
+ });
}
std::pair<int, std::string> TrackablesResource::handler_POST(
@@ -390,9 +426,13 @@
return handler_PUT_func(trackable, token);
}
-std::string TrackablesResource::extractBodyContent(const std::shared_ptr<restbed::Session>& session) {
+
+
+std::string TrackablesResource::extractBodyContent(
+ const std::shared_ptr<restbed::Session>& session) {
const auto request = session->get_request();
int content_length = request->get_header("Content-Length", 0);
+
std::string bodyContent;
session->fetch(content_length,
[&bodyContent](const std::shared_ptr<restbed::Session> session,
@@ -400,8 +440,10 @@
bodyContent = restbed::String::format(
"%.*s\n", (int)body.size(), body.data());
});
- return bodyContent;
+ return bodyContent;
}
+
+
std::string TrackablesResource::extractFormParamsFromBody(const std::string& paramName, const std::string& body) {
const auto uri = restbed::Uri("urlencoded?" + body, true);
@@ -493,24 +535,24 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
result = resultObject;
- result = resultObject;
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 200, result, responseHeaders);
return;
}
if (status_code == 400) {
@@ -502,7 +506,7 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Invalid UUID supplied.";
result = resultObject;
- result = resultObject;
- returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 400, result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 400,result, responseHeaders);
return;
}
if (status_code == 404) {
@@ -510,7 +514,7 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Not found, could not find UUID in database.";
result = resultObject;
- result = resultObject;
- returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 404, result, responseHeaders);
return;
}
defaultSessionClose(session, status_code, result);
@@ -556,23 +560,23 @@
@@ -556,23 +598,23 @@
}
result = resultObject.toJsonString();
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+ returnResponse(session, 200, result, responseHeaders);
+ returnResponse(session, 200,result, responseHeaders);
return;
}
if (status_code == 400) {
......@@ -162,8 +378,8 @@
- result = resultObject;
- returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+ result = resultObject.toJsonString();
+ returnResponse(session, 400, result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 400, "{}", responseHeaders);
return;
}
if (status_code == 404) {
......@@ -172,8 +388,8 @@
- result = resultObject;
- returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+ result = resultObject.toJsonString();
+ returnResponse(session, 404, result, responseHeaders);
+ auto result = resultObject;
+ returnResponse(session, 404, "{}", responseHeaders);
return;
}
defaultSessionClose(session, status_code, result);
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/model/Trackable.cpp 2024-04-23 15:04:24.911615729 +0200
+++ ../model/Trackable.cpp 2024-04-22 18:23:44.610773480 +0200
@@ -41,6 +41,7 @@
}
+
std::string Trackable::toJsonString(bool prettyJson /* = false */) const
{
std::stringstream ss;
@@ -51,6 +52,7 @@
return result;
}
+
void Trackable::fromJsonString(std::string const& jsonString)
{
std::stringstream ss(jsonString);
--- WorldAnchorsApi.cpp 2024-04-18 15:54:51.026541100 +0200
+++ WorldAnchorsApi_patched.cpp 2024-04-11 15:19:00.660580000 +0200
@@ -234,7 +234,7 @@
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/api/WorldAnchorsApi.cpp 2024-04-23 11:31:29.141217249 +0200
+++ ../api/WorldAnchorsApi.cpp 2024-04-22 10:38:47.298434241 +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 "WorldAnchorsApi.h"
namespace org {
@@ -159,11 +159,26 @@
session->close(status, result, { {"Connection", "close"} });
}
+void extractBodyContentAsync(
+ const std::shared_ptr<restbed::Session>& session,
+ int content_length,
+ std::function<void(const std::string&)> callback)
+{
+ session->fetch(content_length,
+ [callback](const std::shared_ptr<restbed::Session> session,
+ const restbed::Bytes &body) {
+ std::string bodyContent = restbed::String::format(
+ "%.*s\n", (int)body.size(), body.data());
+ callback(bodyContent);
+ });
+}
void WorldAnchorsResource::handler_POST_internal(const std::shared_ptr<restbed::Session> session)
{
const auto request = session->get_request();
+ int content_length = request->get_header("Content-Length", 0);
+
// body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
auto worldAnchor = extractJsonModelBodyParam<WorldAnchor>(bodyContent);
// Getting the headers
std::string token = request->get_header("token", "");
@@ -234,11 +249,12 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Unexpected error.";
......@@ -9,7 +46,12 @@
returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
return;
}
@@ -278,7 +278,11 @@
defaultSessionClose(session, status_code, result);
+ });
}
// x-extension
@@ -278,7 +294,11 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
......@@ -22,7 +64,7 @@
return;
}
if (status_code == 201) {
@@ -287,16 +291,20 @@
@@ -287,16 +307,20 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
......@@ -47,7 +89,19 @@
return;
}
defaultSessionClose(session, status_code, result);
@@ -366,8 +374,8 @@
@@ -304,8 +328,10 @@
// x-extension
void WorldAnchorsResource::handler_PUT_internal(const std::shared_ptr<restbed::Session> session) {
const auto request = session->get_request();
+ int content_length = request->get_header("Content-Length", 0);
+
// body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
auto worldAnchor = extractJsonModelBodyParam<WorldAnchor>(bodyContent);
// Getting the headers
std::string token = request->get_header("token", "");
@@ -366,11 +392,12 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Unexpected error.";
......@@ -58,7 +112,11 @@
return;
}
defaultSessionClose(session, status_code, result);
@@ -563,7 +571,7 @@
+ });
}
std::pair<int, std::string> WorldAnchorsResource::handler_POST(
@@ -563,7 +590,7 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Invalid UUID supplied.";
......@@ -67,7 +125,7 @@
returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
return;
}
@@ -571,7 +579,7 @@
@@ -571,7 +598,7 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Not found, could not find UUID in database.";
......@@ -76,3 +134,11 @@
returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
return;
}
@@ -590,6 +617,7 @@
return handler_GET_func(worldAnchorUUID, token);
}
+
std::string WorldAnchorsWorldAnchorUUIDResource::extractBodyContent(const std::shared_ptr<restbed::Session>& session) {
const auto request = session->get_request();
int content_length = request->get_header("Content-Length", 0);
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/model/WorldAnchor.cpp 2024-04-23 11:31:29.041217253 +0200
+++ ../model/WorldAnchor.cpp 2024-04-23 09:52:17.137467999 +0200
@@ -66,6 +66,7 @@
pt.put("UUID", m_UUID);
pt.put("name", m_Name);
pt.put("creatorUUID", m_CreatorUUID);
+ pt.put("unit", m_Unit.getEnumValue());
// generate tree for LocalCRS
tmp_node.clear();
if (!m_LocalCRS.empty()) {
@@ -95,6 +96,7 @@
m_UUID = pt.get("UUID", "");
m_Name = pt.get("name", "");
m_CreatorUUID = pt.get("creatorUUID", "");
+ m_Unit.setEnumValue(pt.get("unit",""));
// push all items of LocalCRS into member
if (pt.get_child_optional("localCRS")) {
m_LocalCRS = fromPt<std::vector<float>>(pt.get_child("localCRS"));
--- WorldLinksApi.cpp 2024-04-18 15:57:51.750705600 +0200
+++ WorldLinksApi_patched.cpp 2024-04-11 15:18:49.350577500 +0200
@@ -234,8 +234,8 @@
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/api/WorldLinksApi.cpp 2024-04-23 11:31:29.141217249 +0200
+++ ../api/WorldLinksApi.cpp 2024-04-22 16:21:40.875779442 +0200
@@ -159,11 +159,26 @@
session->close(status, result, { {"Connection", "close"} });
}
+void extractBodyContentAsync(
+ const std::shared_ptr<restbed::Session>& session,
+ int content_length,
+ std::function<void(const std::string&)> callback)
+{
+ session->fetch(content_length,
+ [callback](const std::shared_ptr<restbed::Session> session,
+ const restbed::Bytes &body) {
+ std::string bodyContent = restbed::String::format(
+ "%.*s\n", (int)body.size(), body.data());
+ callback(bodyContent);
+ });
+}
void WorldLinksResource::handler_POST_internal(const std::shared_ptr<restbed::Session> session)
{
const auto request = session->get_request();
+ int content_length = request->get_header("Content-Length", 0);
+
// body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
auto worldLink = extractJsonModelBodyParam<WorldLink>(bodyContent);
// Getting the headers
std::string token = request->get_header("token", "");
@@ -234,11 +249,12 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Unexpected error.";
......@@ -11,21 +39,24 @@
return;
}
defaultSessionClose(session, status_code, result);
@@ -278,8 +278,11 @@
+ });
}
// x-extension
@@ -278,7 +294,11 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
- returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
- return;
+ std::string rep;
+ for (const WorldLink& item : resultObject) {
+ rep += item.toJsonString() + ",\n";
+ }
+ returnResponse(session, 200, rep, responseHeaders); return;
+ returnResponse(session, 200, rep, responseHeaders);
return;
}
if (status_code == 201) {
responseHeaders.insert(std::make_pair("Content-Type", selectPreferredContentType(contentTypes)));
@@ -287,16 +290,20 @@
@@ -287,16 +307,20 @@
responseHeaders.insert(std::make_pair("Accept", acceptTypes));
}
......@@ -50,7 +81,19 @@
return;
}
defaultSessionClose(session, status_code, result);
@@ -366,8 +373,8 @@
@@ -304,8 +328,10 @@
// x-extension
void WorldLinksResource::handler_PUT_internal(const std::shared_ptr<restbed::Session> session) {
const auto request = session->get_request();
+ int content_length = request->get_header("Content-Length", 0);
+
// body params or form params here from the body content string
- std::string bodyContent = extractBodyContent(session);
+ extractBodyContentAsync(session, content_length, [this, session,request](const std::string& bodyContent) {
auto worldLink = extractJsonModelBodyParam<WorldLink>(bodyContent);
// Getting the headers
std::string token = request->get_header("token", "");
@@ -366,11 +392,12 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Unexpected error.";
......@@ -61,7 +104,11 @@
return;
}
defaultSessionClose(session, status_code, result);
@@ -563,16 +570,16 @@
+ });
}
std::pair<int, std::string> WorldLinksResource::handler_POST(
@@ -563,16 +590,16 @@
responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
result = "Invalid UUID supplied.";
......
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/model/WorldLink.cpp 2024-04-23 11:31:29.041217253 +0200
+++ ../model/WorldLink.cpp 2024-04-23 11:01:03.955841667 +0200
@@ -67,6 +67,8 @@
pt.put("creatorUUID", m_CreatorUUID);
pt.put("UUIDFrom", m_UUIDFrom);
pt.put("UUIDTo", m_UUIDTo);
+ pt.put("typeFrom", m_TypeFrom.getEnumValue());
+ pt.put("typeTo", m_TypeTo.getEnumValue());
// generate tree for Transform
tmp_node.clear();
if (!m_Transform.empty()) {
@@ -90,6 +92,9 @@
m_CreatorUUID = pt.get("creatorUUID", "");
m_UUIDFrom = pt.get("UUIDFrom", "");
m_UUIDTo = pt.get("UUIDTo", "");
+ m_Unit.setEnumValue(pt.get("unit",""));
+ m_TypeFrom.setEnumValue(pt.get("typeFrom", ""));
+ m_TypeTo.setEnumValue(pt.get("typeTo", ""));
// push all items of Transform into member
if (pt.get_child_optional("transform")) {
m_Transform = fromPt<std::vector<float>>(pt.get_child("transform"));
--- ../api/DefaultApi.h 2024-04-15 16:10:32.793819920 +0200
+++ ../api/DefaultApi.h 2024-04-15 16:15:52.916456642 +0200
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/api/DefaultApi.h 2024-04-23 15:28:41.844636318 +0200
+++ DefaultApi.h 2024-04-23 15:29:43.295897540 +0200
@@ -38,8 +38,6 @@
namespace server {
namespace api {
......@@ -8,4 +8,4 @@
-
///
/// Exception to flag problems in the handlers
///
\ No newline at end of file
///
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment