diff OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp @ 4622:9086aeb9d9d2 db-changes

RestApiCallDocumentation::SetAnswerHeader() and Toolbox::RemoveSurroundingQuotes()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 16 Apr 2021 10:48:57 +0200
parents d9473bd5ed43
children 7053502fbf97
line wrap: on
line diff
--- a/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp	Thu Apr 15 11:29:57 2021 +0200
+++ b/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp	Fri Apr 16 10:48:57 2021 +0200
@@ -176,6 +176,21 @@
   }
 
 
+  RestApiCallDocumentation& RestApiCallDocumentation::SetAnswerHeader(const std::string& name,
+                                                                    const std::string& description)
+  {
+    if (answerHeaders_.find(name) != answerHeaders_.end())
+    {
+      throw OrthancException(ErrorCode_ParameterOutOfRange, "Answer HTTP header \"" + name + "\" is already documented");
+    }
+    else
+    {
+      answerHeaders_[name] = Parameter(Type_String, description, false);
+      return *this;
+    }
+  }
+
+
   void RestApiCallDocumentation::SetHttpGetSample(const std::string& url,
                                                   bool isJson)
   {
@@ -430,6 +445,20 @@
         target["responses"]["200"]["content"][EnumerationToString(MimeType_PlainText)]["example"] = sampleText_;
       }
 
+      if (!answerHeaders_.empty())
+      {
+        Json::Value answerHeaders = Json::objectValue;
+
+        for (Parameters::const_iterator it = answerHeaders_.begin(); it != answerHeaders_.end(); ++it)
+        {
+          Json::Value h = Json::objectValue;
+          h["description"] = it->second.GetDescription();          
+          answerHeaders[it->first] = h;
+        }
+
+        target["responses"]["200"]["headers"] = answerHeaders;
+      }
+
       Json::Value parameters = Json::arrayValue;
         
       for (Parameters::const_iterator it = getArguments_.begin();