
prerna.engine.impl.function.StreamRESTFunctionEngine Maven / Gradle / Ivy
The newest version!
package prerna.engine.impl.function;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import prerna.reactor.job.JobReactor;
import prerna.sablecc2.comm.PixelJobManager;
import prerna.security.HttpHelperUtility;
import prerna.util.Constants;
import prerna.util.Utility;
public class StreamRESTFunctionEngine extends AbstractFunctionEngine {
private static final Logger classLogger = LogManager.getLogger(StreamRESTFunctionEngine.class);
private String httpMethod;
private String url;
private Map headers;
private String contentType = "JSON";
@Override
public void open(Properties smssProp) throws Exception {
super.open(smssProp);
this.httpMethod = smssProp.getProperty("HTTP_METHOD");
if(this.httpMethod == null
|| (this.httpMethod=this.httpMethod.trim().toUpperCase()).isEmpty()
|| (!this.httpMethod.equals("GET") && !this.httpMethod.equals("POST")
&& !this.httpMethod.equals("PUT") && !this.httpMethod.equals("HEAD")
)) {
throw new IllegalArgumentException("RESTFunctionEngine only supports GET, HEAD, POST, or PUT requests");
}
this.url = smssProp.getProperty("URL");
if(this.url == null
|| (this.url=this.url.trim()).isEmpty()) {
throw new IllegalArgumentException("Must provide a URL");
}
Utility.checkIfValidDomain(url);
String headersStr = smssProp.getProperty("HEADERS");
if(headersStr!= null && !(headersStr=headersStr.trim()).isEmpty()) {
this.headers = new Gson().fromJson(headersStr, new TypeToken
© 2015 - 2025 Weber Informatics LLC | Privacy Policy