+ else if (param1 == "interact") {
+ if (numParams != 3)
+ throw anna::RuntimeException("Wrong body content format on HTTP Request. Use 'help' management command to see more information.", ANNA_FILE_LOCATION);
+
+ int amount = atoi(param2.c_str());
+ if (amount < -1)
+ throw anna::RuntimeException("Interactive amount must be -1 (to disable interactive mode) or a positive number.", ANNA_FILE_LOCATION);
+
+ int id = atoi(param3.c_str());
+ TestCase *testCase = testManager.findTestCase(id);
+ if (testCase) {
+ if (amount == -1) {
+ testCase->makeInteractive(false);
+ opt_response_content = "interactive mode disabled";
+ }
+ else {
+ testCase->addInteractiveAmount(amount);
+ opt_response_content = "added interactive amount of ";
+ opt_response_content += anna::functions::asString(amount);
+ opt_response_content += " units";
+ if (amount == 0) opt_response_content += " (0: freezing a non-interactive testcase, no effect on already interactive)";
+ }
+ opt_response_content += " for test case id ";
+ opt_response_content += anna::functions::asString(id);
+ }
+ else {
+ opt_response_content = "cannot found test id (";
+ opt_response_content += anna::functions::asString(id);
+ opt_response_content += ")";
+ }
+ }