Implement dynamic procedure at REST interface
[anna.git] / example / diameter / launcher / MyHandler.cpp
index d2433c8..9086582 100644 (file)
@@ -368,31 +368,6 @@ bool MyHandler::doPOST(const std::string &uri, const nlohmann::json &j, std::str
     auto it = j.find("condition");
     if (it != j.end() && it->is_object()) {
 
-/*
-      auto j2 = it->get<nlohmann::json::object_t>();
-
-      // [code]|[bitR]|[hopByHop]|[applicationId]|[sessionId]|[resultCode]|[msisdn]|[imsi]|[serviceContextId]
-      auto it_code = j2.find("code");
-      auto it_bitR = j2.find("bitR");
-      auto it_hopByHop = j2.find("hopByHop");
-      auto it_applicationId = j2.find("applicationId");
-      auto it_sessionId = j2.find("sessionId");
-      auto it_resultCode = j2.find("resultCode");
-      auto it_msisdn = j2.find("msisdn");
-      auto it_imsi = j2.find("imsi");
-      auto it_serviceContextId = j2.find("serviceContextId");
-
-      std::string p1 = (it_code != j2.end() && it_code->is_string()) ? *it_code : "";
-      std::string p2 = (it_bitR != j2.end() && it_bitR->is_string()) ? *it_bitR : "";
-      std::string p3 = (it_hopByHop != it->end() && it_hopByHop->is_string()) ? *it_hopByHop : "";
-      std::string p4 = (it_applicationId != it->end() && it_applicationId->is_string()) ? *it_applicationId : "";
-      std::string p5 = (it_sessionId != it->end() && it_sessionId->is_string()) ? *it_sessionId : "";
-      std::string p6 = (it_resultCode != it->end() && it_resultCode->is_string()) ? *it_resultCode : "";
-      std::string p7 = (it_msisdn != it->end() && it_msisdn->is_string()) ? *it_msisdn : "";
-      std::string p8 = (it_imsi != it->end() && it_imsi->is_string()) ? *it_imsi : "";
-      std::string p9 = (it_serviceContextId != it->end() && it_serviceContextId->is_string()) ? *it_serviceContextId : "";
-*/
-
       // [code]|[bitR]|[hopByHop]|[applicationId]|[sessionId]|[resultCode]|[msisdn]|[imsi]|[serviceContextId]
       auto it_code = it->find("code");
       auto it_bitR = it->find("bitR");
@@ -561,6 +536,16 @@ bool MyHandler::doPOST(const std::string &uri, const nlohmann::json &j, std::str
       response += "invalid 'action' string field (allowed: enable|disable)";
   }
 
+  // Dynamic procedure
+  else if ((opType == "/dynamic")) {
+    auto it = j.find("arguments");
+    if (it != j.end() && it->is_object()) {
+      result = eop.test__dynamic(response, *it);
+    }
+    else
+      response += "missing 'arguments' object field";
+  }
+
 
   return result;
 }