diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 3187:4bbadcd03966

refactoring retrieval of metadata from database
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 Feb 2019 12:06:19 +0100
parents 8ea7c4546c3a
children 810772486249
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Fri Feb 01 09:28:12 2019 +0100
+++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp	Mon Feb 04 12:06:19 2019 +0100
@@ -705,9 +705,9 @@
     CheckValidResourceType(call);
     
     std::string publicId = call.GetUriComponent("id", "");
-    std::list<MetadataType> metadata;
+    std::map<MetadataType, std::string> metadata;
 
-    OrthancRestApi::GetIndex(call).ListAvailableMetadata(metadata, publicId);
+    OrthancRestApi::GetIndex(call).GetAllMetadata(metadata, publicId);
 
     Json::Value result;
 
@@ -715,25 +715,21 @@
     {
       result = Json::objectValue;
       
-      for (std::list<MetadataType>::const_iterator 
+      for (std::map<MetadataType, std::string>::const_iterator 
              it = metadata.begin(); it != metadata.end(); ++it)
       {
-        std::string value;
-        if (OrthancRestApi::GetIndex(call).LookupMetadata(value, publicId, *it))
-        {
-          std::string key = EnumerationToString(*it);
-          result[key] = value;
-        }
+        std::string key = EnumerationToString(it->first);
+        result[key] = it->second;
       }      
     }
     else
     {
       result = Json::arrayValue;
       
-      for (std::list<MetadataType>::const_iterator 
+      for (std::map<MetadataType, std::string>::const_iterator 
              it = metadata.begin(); it != metadata.end(); ++it)
       {       
-        result.append(EnumerationToString(*it));
+        result.append(EnumerationToString(it->first));
       }
     }