diff OrthancServer/LuaScripting.cpp @ 1658:54bafe0e7e7b

Optional argument "keepStrings" in "DumpJson()"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 30 Sep 2015 09:44:38 +0200
parents d7e569640d09
children d78b87f93bcf
line wrap: on
line diff
--- a/OrthancServer/LuaScripting.cpp	Tue Sep 29 16:31:48 2015 +0200
+++ b/OrthancServer/LuaScripting.cpp	Wed Sep 30 09:44:38 2015 +0200
@@ -83,18 +83,23 @@
     const char* uri = lua_tostring(state, 1);
     bool builtin = (nArgs == 2 ? lua_toboolean(state, 2) != 0 : false);
 
-    std::string result;
-    if (HttpToolbox::SimpleGet(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
-                               RequestOrigin_Lua, uri))
+    try
     {
-      lua_pushlstring(state, result.c_str(), result.size());
+      std::string result;
+      if (HttpToolbox::SimpleGet(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
+                                 RequestOrigin_Lua, uri))
+      {
+        lua_pushlstring(state, result.c_str(), result.size());
+        return 1;
+      }
     }
-    else
+    catch (OrthancException& e)
     {
-      LOG(ERROR) << "Lua: Error in RestApiGet() for URI: " << uri;
-      lua_pushnil(state);
+      LOG(ERROR) << "Lua: " << e.What();
     }
 
+    LOG(ERROR) << "Lua: Error in RestApiGet() for URI: " << uri;
+    lua_pushnil(state);
     return 1;
   }
 
@@ -127,21 +132,26 @@
     const char* bodyData = lua_tolstring(state, 2, &bodySize);
     bool builtin = (nArgs == 3 ? lua_toboolean(state, 3) != 0 : false);
 
-    std::string result;
-    if (isPost ?
-        HttpToolbox::SimplePost(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
-                                RequestOrigin_Lua, uri, bodyData, bodySize) :
-        HttpToolbox::SimplePut(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
-                               RequestOrigin_Lua, uri, bodyData, bodySize))
+    try
     {
-      lua_pushlstring(state, result.c_str(), result.size());
+      std::string result;
+      if (isPost ?
+          HttpToolbox::SimplePost(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
+                                  RequestOrigin_Lua, uri, bodyData, bodySize) :
+          HttpToolbox::SimplePut(result, serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
+                                 RequestOrigin_Lua, uri, bodyData, bodySize))
+      {
+        lua_pushlstring(state, result.c_str(), result.size());
+        return 1;
+      }
     }
-    else
+    catch (OrthancException& e)
     {
-      LOG(ERROR) << "Lua: Error in " << (isPost ? "RestApiPost()" : "RestApiPut()") << " for URI: " << uri;
-      lua_pushnil(state);
+      LOG(ERROR) << "Lua: " << e.What();
     }
 
+    LOG(ERROR) << "Lua: Error in " << (isPost ? "RestApiPost()" : "RestApiPut()") << " for URI: " << uri;
+    lua_pushnil(state);
     return 1;
   }
 
@@ -185,16 +195,22 @@
     const char* uri = lua_tostring(state, 1);
     bool builtin = (nArgs == 2 ? lua_toboolean(state, 2) != 0 : false);
 
-    if (HttpToolbox::SimpleDelete(serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
-                                  RequestOrigin_Lua, uri))
+    try
     {
-      lua_pushboolean(state, 1);
+      if (HttpToolbox::SimpleDelete(serverContext->GetHttpHandler().RestrictToOrthancRestApi(builtin), 
+                                    RequestOrigin_Lua, uri))
+      {
+        lua_pushboolean(state, 1);
+        return 1;
+      }
     }
-    else
+    catch (OrthancException& e)
     {
-      LOG(ERROR) << "Lua: Error in RestApiDelete() for URI: " << uri;
+      LOG(ERROR) << "Lua: " << e.What();
+    }
+
+    LOG(ERROR) << "Lua: Error in RestApiDelete() for URI: " << uri;
       lua_pushnil(state);
-    }
 
     return 1;
   }
@@ -316,7 +332,7 @@
   {
     Json::Value operations;
     LuaFunctionCall call2(lua_, "_AccessJob");
-    call2.ExecuteToJson(operations);
+    call2.ExecuteToJson(operations, false);
      
     if (operations.type() != Json::arrayValue)
     {