Commit 24856482 authored by Hugo Kreber's avatar Hugo Kreber
Browse files

update patches

parent 5f24579c
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -5,3 +5,6 @@ patch -u ../api/RelocalizationInformationApi.cpp -i fixRelocInfoJSONIssue.patch
patch -u ../api/TrackablesApi.cpp -i fixCppTrackable.patch
patch -u ../api/TrackablesApi.cpp -i fixCppTrackable.patch
patch -u ../api/WorldAnchorsApi.cpp -i fixCppWorldAnchor.patch
patch -u ../api/WorldAnchorsApi.cpp -i fixCppWorldAnchor.patch
patch -u ../api/WorldLinksApi.cpp -i fixCppWorldLink.patch
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
+288 −72
Original line number Original line Diff line number Diff line
--- TrackablesApi.cpp	2024-04-15 17:52:21.000357100 +0200
--- ../../../world-storage-cpp-server/EtsiServerGen/api/TrackablesApi.cpp	2024-04-15 17:47:05.542444638 +0200
+++ TrackablesApi_patched.cpp	2024-04-15 18:08:32.955228320 +0200
+++ ../api/TrackablesApi.cpp	2024-04-22 18:14:43.144871367 +0200
@@ -201,7 +201,7 @@
@@ -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"
 
 
         result = resultObject;
+ 
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+
+        returnResponse(session, 200, result, responseHeaders);
 namespace org {
         return;
 namespace openapitools {
     }
 namespace server {
     if (status_code == 201) {
@@ -80,6 +83,13 @@
@@ -211,7 +211,7 @@
     boost::property_tree::json_parser::read_json(sstream, pt);
         }
 
 
         result = resultObject;
     auto model = MODEL_T(pt);
-        returnResponse(session, 201, result.empty() ? "{}" : result, responseHeaders);
+
+        returnResponse(session, 201, result, responseHeaders);
+    if constexpr(std::is_same_v<MODEL_T, Trackable>) {
         return;
+        auto unitStr = pt.get<std::string>("unit", ""); 
+        UnitSystem unit; 
+        unit.fromString(unitStr);// Convertir unitStr en UnitSystem
+        model.setUnit(unit);
+    }
     return model;
 }
 }
     if (status_code == 400) {
@@ -219,7 +219,7 @@
         result = "Bad request.";
 
 
         result = resultObject;
@@ -159,86 +169,102 @@
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
     session->close(status, result, { {"Connection", "close"} });
+        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;
+
+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);
-        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);
-        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);
-        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.empty() ? "{}" : result, responseHeaders);
+        returnResponse(session, 409, result, responseHeaders);
-        return;
         return;
-    }
     }
-    if (status_code == 0) {
     if (status_code == 0) {
-        responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
-        result = "Unexpected error.";
         result = "Unexpected error.";
-    
     
-        result = resultObject.toJsonString();
-        result = resultObject.toJsonString();
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
-        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);
+                returnResponse(session, 0, result, responseHeaders);
         return;
+                return;
+            }
+            defaultSessionClose(session, status_code, result);
+   });
 }
 }
     defaultSessionClose(session, status_code, result);
 
@@ -277,8 +276,12 @@
 // x-extension
@@ -277,8 +303,11 @@
         if (!acceptTypes.empty()) {
         if (!acceptTypes.empty()) {
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
         }
         }
-    
-    
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+        std::string response;
+        std::string rep;
+        for (const Trackable& item : resultObject) {
+        for (const Trackable& item : resultObject) {
+            response += item.toJsonString() + ",\n";
+            rep += item.toJsonString() + ",\n";
+        }
+        }
+
+        returnResponse(session, 200, rep, responseHeaders);
+        returnResponse(session, 200, response, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 201) {
     if (status_code == 201) {
@@ -286,17 +289,18 @@
@@ -286,17 +315,20 @@
         if (!acceptTypes.empty()) {
         if (!acceptTypes.empty()) {
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
         }
         }
-    
-    
-        result = resultObject;
-        result = resultObject;
-        returnResponse(session, 201, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 201, result.empty() ? "{}" : result, responseHeaders);
+        std::string response;
+        std::string rep;
+        for (const Trackable& item : resultObject) {
+        for (const Trackable& item : resultObject) {
+            response += item.toJsonString() + ",\n";
+            rep += item.toJsonString() + ",\n";
+        }
+        }
+        returnResponse(session, 201, response, responseHeaders);
+
+        returnResponse(session, 201, rep, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 0) {
     if (status_code == 0) {
@@ -80,33 +243,51 @@
     
     
-        result = resultObject.toJsonString();
-        result = resultObject.toJsonString();
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
+
+        returnResponse(session, 0, result, responseHeaders);
+        returnResponse(session, 0, result, responseHeaders);
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     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);
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 200, result, responseHeaders);
+        returnResponse(session, 200, result, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 400) {
     if (status_code == 400) {
@@ -351,7 +355,7 @@
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         result = "Bad request.";
         result = "Bad request.";
     
     
         result = resultObject;
-        result = resultObject;
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 400, result, responseHeaders);
+        returnResponse(session, 400, result, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 404) {
     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 = "Not found, could not find UUID in database.";
     
     
         result = resultObject;
-        result = resultObject;
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 404, result, responseHeaders);
+        returnResponse(session, 404, result, responseHeaders);
         return;
         return;
     }
     }
@@ -116,39 +297,74 @@
     
     
-        result = resultObject.toJsonString();
-        result = resultObject.toJsonString();
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
+        result = resultObject;
+        
+        returnResponse(session, 0, result, responseHeaders);
+        returnResponse(session, 0, result, responseHeaders);
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     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;
 }
 }
+ 
+
 
 
         result = resultObject;
 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;
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 200, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 200, result, responseHeaders);
+        returnResponse(session, 200, result, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 400) {
     if (status_code == 400) {
@@ -502,7 +506,7 @@
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         result = "Invalid UUID supplied.";
         result = "Invalid UUID supplied.";
     
     
         result = resultObject;
-        result = resultObject;
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 400,result, responseHeaders);
+        returnResponse(session, 400,result, responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 404) {
     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 = "Not found, could not find UUID in database.";
     
     
         result = resultObject;
-        result = resultObject;
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+        auto result = resultObject;
+        returnResponse(session, 404, result, responseHeaders);
+        returnResponse(session, 404, result, responseHeaders);
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     defaultSessionClose(session, status_code, result);
@@ -556,23 +560,23 @@
@@ -556,23 +598,23 @@
         }
         }
     
     
         result = resultObject.toJsonString();
         result = resultObject.toJsonString();
@@ -162,8 +378,8 @@
     
     
-        result = resultObject;
-        result = resultObject;
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
+        result = resultObject.toJsonString();
+        auto result = resultObject;
+        returnResponse(session, 400, result, responseHeaders);
+        returnResponse(session, 400, "{}", responseHeaders);
         return;
         return;
     }
     }
     if (status_code == 404) {
     if (status_code == 404) {
@@ -172,8 +388,8 @@
     
     
-        result = resultObject;
-        result = resultObject;
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
-        returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
+        result = resultObject.toJsonString();
+        auto result = resultObject;
+        returnResponse(session, 404, result, responseHeaders);
+        returnResponse(session, 404, "{}", responseHeaders);
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     defaultSessionClose(session, status_code, result);
+18 −0
Original line number Original line Diff line number Diff line
--- ../../../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);
+74 −8
Original line number Original line Diff line number Diff line
--- WorldAnchorsApi.cpp	2024-04-18 15:54:51.026541100 +0200
--- ../../../cpp-server-patch/world-storage-cpp-server/EtsiServerGen/api/WorldAnchorsApi.cpp	2024-04-23 11:31:29.141217249 +0200
+++ WorldAnchorsApi_patched.cpp	2024-04-11 15:19:00.660580000 +0200
+++ ../api/WorldAnchorsApi.cpp	2024-04-22 10:38:47.298434241 +0200
@@ -234,7 +234,7 @@
@@ -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"));
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         result = "Unexpected error.";
         result = "Unexpected error.";
     
     
@@ -9,7 +46,12 @@
         returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
         returnResponse(session, 0, result.empty() ? "{}" : result, responseHeaders);
         return;
         return;
     }
     }
@@ -278,7 +278,11 @@
     defaultSessionClose(session, status_code, result);
+   });
 }
 
 // x-extension
@@ -278,7 +294,11 @@
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
         }
         }
     
     
@@ -22,7 +64,7 @@
         return;
         return;
     }
     }
     if (status_code == 201) {
     if (status_code == 201) {
@@ -287,16 +291,20 @@
@@ -287,16 +307,20 @@
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
             responseHeaders.insert(std::make_pair("Accept", acceptTypes));
         }
         }
     
     
@@ -47,7 +89,19 @@
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     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"));
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         result = "Unexpected error.";
         result = "Unexpected error.";
     
     
@@ -58,7 +112,11 @@
         return;
         return;
     }
     }
     defaultSessionClose(session, status_code, result);
     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"));
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         result = "Invalid UUID supplied.";
         result = "Invalid UUID supplied.";
     
     
@@ -67,7 +125,7 @@
         returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
         returnResponse(session, 400, result.empty() ? "{}" : result, responseHeaders);
         return;
         return;
     }
     }
@@ -571,7 +579,7 @@
@@ -571,7 +598,7 @@
         responseHeaders.insert(std::make_pair("Content-Type", "text/plain"));
         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 in database.";
     
     
@@ -76,3 +134,11 @@
         returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
         returnResponse(session, 404, result.empty() ? "{}" : result, responseHeaders);
         return;
         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);
+18 −0
Original line number Original line Diff line number Diff line
--- ../../../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"));
Loading