| 275 | |
| 276 | |
| 277 | std::optional<bool> WorkflowMachine::QueryOverride(const string& activity) |
| 278 | { |
| 279 | rapidjson::Document request(rapidjson::kObjectType); |
| 280 | rapidjson::Document::AllocatorType& allocator = request.GetAllocator(); |
| 281 | request.AddMember("command", "override", allocator); |
| 282 | request.AddMember("action", "query", allocator); |
| 283 | request.AddMember("activity", activity, allocator); |
| 284 | rapidjson::StringBuffer buffer; |
| 285 | rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); |
| 286 | request.Accept(writer); |
| 287 | |
| 288 | string jsonResult; |
| 289 | if (m_function) |
| 290 | jsonResult = BNPostWorkflowRequestForFunction(m_function->GetObject(), buffer.GetString()); |
| 291 | else |
| 292 | jsonResult = BNPostWorkflowRequestForBinaryView(m_view->GetObject(), buffer.GetString()); |
| 293 | |
| 294 | rapidjson::Document response(rapidjson::kObjectType); |
| 295 | response.Parse(jsonResult.c_str()); |
| 296 | if (response.HasMember("response") && response["response"].HasMember("activity") && response["response"]["activity"].HasMember("override")) |
| 297 | return response["response"]["activity"]["override"].GetBool(); |
| 298 | |
| 299 | return std::nullopt; |
| 300 | } |
| 301 | |
| 302 | |
| 303 | bool WorkflowMachine::SetOverride(const string& activity, bool enable) |