summaryrefslogtreecommitdiff
path: root/workflow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'workflow.cpp')
-rw-r--r--workflow.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/workflow.cpp b/workflow.cpp
index 8e3dc7df..8146e923 100644
--- a/workflow.cpp
+++ b/workflow.cpp
@@ -147,6 +147,23 @@ WorkflowMachine::WorkflowMachine(Ref<Function> function): m_function(function)
}
+bool WorkflowMachine::PostJsonRequest(const std::string& request)
+{
+ string jsonResult;
+ if (m_function)
+ jsonResult = BNPostWorkflowRequestForFunction(m_function->GetObject(), request.c_str());
+ else
+ jsonResult = BNPostWorkflowRequestForBinaryView(m_view->GetObject(), request.c_str());
+
+ rapidjson::Document response(rapidjson::kObjectType);
+ response.Parse(jsonResult.c_str());
+ if (response.HasMember("commandStatus") && response["commandStatus"].HasMember("accepted"))
+ return response["commandStatus"]["accepted"].GetBool();
+
+ return false;
+}
+
+
bool WorkflowMachine::Run()
{
return PostRequest("run");