diff --git a/dm-cli/Deals.cpp b/dm-cli/Deals.cpp index db00159..83b97df 100644 --- a/dm-cli/Deals.cpp +++ b/dm-cli/Deals.cpp @@ -312,7 +312,55 @@ int Deals::Complite() { ShowDebug(data, decoded, 0, result); return 0; } -int Deals::Cancel() { return 0; } +int Deals::Cancel() { + string data = CommonStatus(); + string result = ExecCommand(data.c_str()); + if (result.length() == 0) + return NoResponse(""); + nlohmann::json jsonData = nlohmann::json::parse(result); + nlohmann::json deal = jsonData["deal"]; + + string message; + string sign; + if (parser.cmdOptionExists("-m") || parser.cmdOptionExists("--message")) + { + message = GetVal("-m", "--message"); + } + if (parser.cmdOptionExists("-s") || parser.cmdOptionExists("--signature")) + { + sign = GetVal("-s", "--signature"); + } + + deal["seller"]["signature"] = sign; + deal["feedback"]["comments"] = message; + + string jsf = deal.dump(); + jsf = ReplaceAll(jsf, "\"", "\\\""); + data = "curl -X POST \""; + data.append(address); + data.append("/api/v1/deal/cancel\" -H \"Content-Type: application/json\" "); + data.append("-d \""); + data.append(jsf); + data.append("\""); + + result = ExecCommand(data.c_str()); + if (result.length() == 0) + return NoResponse(""); + + std::ostringstream stream; + stream << "success: " << jsonData["result"]["success"] << endl; + stream << "message: " << jsonData["result"]["message"] << endl; + + + + string decoded = stream.str(); + std::cout << decoded << endl; + + if (isDebug) + ShowDebug(data, decoded, 0, result); + return 0; + +} int Deals::Negative() { return 0; } string Deals::GetVal(const string first, const string second)