in src/com/intellij/idea/plugin/hybris/tools/remote/http/HybrisHacHttpClient.java [224:275]
HybrisHttpResult executeGroovyScript(
final Project project, final String content, final boolean isCommitMode, final int timeout
) {
final var settings = RemoteConnectionUtil.INSTANCE.getActiveRemoteConnectionSettings(project, RemoteConnectionType.Hybris);
final var params = Arrays.asList(
new BasicNameValuePair("scriptType", "groovy"),
new BasicNameValuePair("commit", String.valueOf(isCommitMode)),
new BasicNameValuePair("script", content)
);
HybrisHttpResult.HybrisHttpResultBuilder resultBuilder = createResult();
final String actionUrl = settings.getGeneratedURL() + "/console/scripting/execute";
final HttpResponse response = post(project, actionUrl, params, true, timeout, settings);
final StatusLine statusLine = response.getStatusLine();
resultBuilder = resultBuilder.httpCode(statusLine.getStatusCode());
if (statusLine.getStatusCode() != SC_OK || response.getEntity() == null) {
return resultBuilder.errorMessage("[" + statusLine.getStatusCode() + "] " +
statusLine.getReasonPhrase()).build();
}
final Document document;
try {
document = parse(response.getEntity().getContent(), StandardCharsets.UTF_8.name(), "");
} catch (final IOException e) {
return resultBuilder.errorMessage(e.getMessage() + ' ' + actionUrl).httpCode(SC_BAD_REQUEST).build();
}
final Elements fsResultStatus = document.getElementsByTag("body");
if (fsResultStatus == null) {
return resultBuilder.errorMessage("No data in response").build();
}
final Map json = parseResponse(fsResultStatus);
if (json == null) {
return createResult()
.errorMessage("Cannot parse response from the server...")
.build();
}
if (json.get("stacktraceText") != null && isNotEmpty(json.get("stacktraceText").toString())) {
return createResult()
.errorMessage(json.get("stacktraceText").toString())
.build();
}
if (json.get("outputText") != null) {
resultBuilder.output(json.get("outputText").toString());
}
if (json.get("executionResult") != null) {
resultBuilder.result(json.get("executionResult").toString());
}
return resultBuilder.build();
}